NYOJ 914 Yougth的最大化(贪心,二分)
来源:互联网 发布:fifa数据库超级玩家 编辑:程序博客网 时间:2024/06/03 21:32
Yougth的最大化
时间限制:1000 ms | 内存限制:65535 KB
难度:4
- 描述
Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价值最大吗?
- 输入
- 有多组测试数据
每组测试数据第一行有两个数n和k,接下来一行有n个数Wi和Vi。
(1<=k=n<=10000) (1<=Wi,Vi<=1000000) - 输出
- 输出使得单位价值的最大值。(保留两位小数)
- 样例输入
3 22 25 32 1
- 样例输出
0.75
#include<stdio.h>#include<algorithm>#define Max 10050using namespace std;double w[Max],v[Max],t[Max];int n,k;int judge(double x){double l=x,sum;for(int i=0;i<n;i++){t[i]=v[i]-l*w[i];}sort(t,t+n); sum=0;for(int i=0;i<k;i++){sum+=t[n-i-1];}return sum>=0;}double getanswer(double x,double y){double l=y,r=x,mid;while(r-l>0.001){mid=(l+r)/2;if(judge(mid)){ l=mid;}else r=mid;}return mid;}int main(){ double max,min;while(scanf("%d%d",&n,&k)!=EOF){ max=0; min=10000000;for(int i=0;i<n;i++){scanf("%lf%lf",&w[i],&v[i]);if(v[i]/w[i]>max) max=v[i]/w[i];if(v[i]/w[i]<min) min=v[i]/w[i];}printf("%.2f\n",getanswer(max,min));}}
0 0
- NYOJ 914 Yougth的最大化 【贪心】+【二分】
- NYOJ 914 Yougth最大化(贪心+二分)
- NYOJ 914 Yougth的最大化(二分搜索 + 贪心)
- nyoj 914 Yougth的最大化(贪心+二分搜索)
- NYOJ 914 Yougth的最大化(贪心,二分)
- NYOJ 586疯牛&NYOJ 914 Yougth的最大化 (二分+贪心)
- NYOJ 914题(贪心+二分搜索)Yougth的最大化 酒馆浪人的博客
- NYOJ 914-Yougth的最大化(二分)
- 【Yougth的最大化 914 二分搜索+ 贪心】
- NYOJ 914 Yougth的最大化(二分法 + 贪心)
- nyoj Yougth的最大化 914 (二分搜索)
- nyoj--914--Yougth的最大化(二分查找)
- NYOJ 914 Yougth的最大化
- NYOJ 914 Yougth的最大化
- nyoj-914 Yougth的最大化
- NYOJ - 914 Yougth的最大化
- Yougth的最大化 nyoj 914
- NYOJ-914 Yougth的最大化
- 树——sum-root-to-leaf-numbers
- 旧网站(java版本)永久301跳转到新网站(asp.net版本)
- 【友盟V5.0】微信登陆后,返回的usid为空
- Word2007中怎样删除空白页 PDF空白页如何删除
- vim 配置(ma6174 + YCM)
- NYOJ 914 Yougth的最大化(贪心,二分)
- List (单链表17个函数讲解)
- Lock与synchronized 的区别
- 不使用循环和乘除算前n项和
- hdu_1072_Nightmare(BFS)
- Maven学习13之覆盖率测试
- JSP中使用SpringBoot Security步骤
- Part2:Unity学习笔记十一 - Space Shooter
- AngularJS directive指令之require部分