NYOJ 914 Yougth的最大化
来源:互联网 发布:美国国父路易十六知乎 编辑:程序博客网 时间:2024/06/05 08:57
题目链接
第一次遇到二分法和贪心结合的题目,算法很妙,把中间值输出理解了一下,大概是保证有解的情况下,通过二分法使单位重量的价值最大,还运用了一个结论,就是多个物品单位重量的价值一定小于单位重量价值最大的物品,我想这也许可以算一个模板题了吧,,有的写法只能先记住了。
代码出自别人,结论证明思路及代码
如下代码链接
感觉这个代码更容易理解一些
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int w[12000],v[12000];double total[12000];int n,k;bool deal(double num){ int i; double sum=0; for(i=0;i<n;i++){ total[i]=v[i]-num*w[i]; //printf("%lf ",total[i]); } //printf("\n"); sort(total,total+n); for(i=0;i<k;i++){ sum+=total[n-1-i]; //printf("%lf\n",sum); } if(sum>=0) return true; else return false;}double reach(double end){ int i; double l=0,r=end,mid; for(i=0;i<100;i++){ mid=(l+r)/2; //printf("%lf\n",mid); 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
- NYOJ 914 Yougth的最大化
- NYOJ 914 Yougth的最大化
- nyoj-914 Yougth的最大化
- NYOJ - 914 Yougth的最大化
- Yougth的最大化 nyoj 914
- NYOJ-914 Yougth的最大化
- NYOJ 914 Yougth的最大化
- NYOJ 914 Yougth的最大化
- NYOJ-914 Yougth的最大化
- nyoj 914 Yougth的最大化
- NYOJ 914 Yougth的最大化
- NYOJ Yougth的最大化
- nyoj 914 Yougth 最大化
- NYOJ 914 Yougth的最大化 【贪心】+【二分】
- NYOJ 914-Yougth的最大化(二分)
- nyoj 题目914 Yougth的最大化
- NYOJ 914 Yougth的最大化(二分搜索 + 贪心)
- NYOJ 914 Yougth的最大化(二分法 + 贪心)
- 让bochs调试时的终端输出有颜色的文本的方法
- Android事件分发机制
- 给即将大三的自己一封信
- 缓存基础- 缓存包含哪些
- POJ 2286 The Rotation Game(IDA*)
- NYOJ 914 Yougth的最大化
- C++11学习笔记(2)
- python构建网站的几个第三方库
- iOS之模态情境
- RequestDispatcher 的使用总结
- 判断一个字符串是否是一个字符串的旋转字符串
- python实现简单神经网络算法
- 使用JAVA读写Properties属性文件
- java笔记--有关构造函数的小问题