nyoj-914 Yougth的最大化

来源:互联网 发布:halcon去毛刺检测算法 编辑:程序博客网 时间:2024/06/05 00:11

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=914

二分法加贪心,不理解的可以上网上搜大神的。。。。。。

代码:#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int w[12000],v[12000];double total[12000];int n,k;int deal(double num){int i;double sum=0;for(i=0;i<n;i++){total[i]=v[i]-num*w[i];}sort(total,total+n);for(i=0;i<k;i++){sum+=total[n-1-i];}return sum>=0;}double reach(double end){int i;double l=0,r=end,mid;for(i=0;i<100;i++){mid=(l+r)/2;if(deal(mid))   l=mid;else   r=mid;}return l;}int main(){double max,temp;int i;while(~scanf("%d%d",&n,&k)){max=0;for(i=0;i<n;i++){scanf("%d %d",&w[i],&v[i]);   temp=v[i]/w[i];   if(temp>max)      max=temp;}printf("%.2lf\n",reach(max));}return 0;} 

0 0