首页 > 其他 > 详细

D2. Magic Powder - 2

时间:2019-08-18 09:06:14      阅读:116      评论:0      收藏:0      [点我收藏+]

题目链接:http://codeforces.com/contest/670/problem/D2

 

题意:

你的蛋糕需要n个原材料,你现在有k个魔法材料,魔法材料可以转化为任何材料

现在告诉你蛋糕每个材料需要多少,以及你现在有多少个

问你最多能够做出多少个蛋糕来

 

思路:

直接二分就好了,注意加起来会爆int

以及r给到2e9才行

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e5+7;
 4 long long a[maxn],b[maxn],k;
 5 int n;
 6 bool check(long long x)
 7 {
 8     long long ans = 0;
 9     for(int i=1;i<=n;i++)
10         if(a[i]*x-b[i]>k)return false;
11     for(int i=1;i<=n;i++)
12         ans+=max(a[i]*x-b[i],0LL);
13     if(ans<=k)return true;
14     return false;
15 }
16 int main()
17 {
18     scanf("%d%lld",&n,&k);
19     for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
20     for(int i=1;i<=n;i++)scanf("%lld",&b[i]);
21     long long l=0,r=2e9,ans=0;
22     while(l<=r)
23     {
24         int mid=(l+r)/2;
25         if(check(mid))l=mid+1,ans=mid;
26         else r=mid-1;
27     }
28     cout<<ans<<endl;
29 }

 

D2. Magic Powder - 2

原文:https://www.cnblogs.com/-Ackerman/p/11371085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!