挑战程序设计竞赛-第四版-3.1.4 最大化平均值
来源:互联网 发布:为什么要激活windows 编辑:程序博客网 时间:2024/06/05 09:09
题目内容:
有n个物品的重量和价值分别是wi和vi,从中选出k个物品使得单位重量的价值最大。
输入
n = 3,k = 2;
(w,v)={(2,2),(5,3),(2,1)};
题目分析:
采用二分法做
定义一个函数bool C(x):可以选择使得单位重量的价值不小于x
则选了k个后,单位重量的价值是:
我们要求的是在
主要代码如下
bool C(int x){ int y[100005]; for(int i = 1 ; i <= n ; i ++){ y[i] = (v[i]-x*w[i]); } sort(y+1,y+n+1); int sum = 0; for(int i = n ; i >= n-k+1;i--){ sum += y[i]; } return sum >= 0;}void solve(){ double lb = 0 ,ub =INF; for(int i = 0 ; i < 100 ; i ++){ double mid = (lb + ub) >> 1; if(C(mid))lb = mid; else ub = mid; } printf ub;}
阅读全文
0 0
- 挑战程序设计竞赛-第四版-3.1.4 最大化平均值
- 《挑战程序设计竞赛》3.1.2 二分搜索-最大化平均值 POJ2976 3111
- 挑战程序竞赛系列(17):3.1最大化平均值
- 《挑战程序设计竞赛》3.1.1 二分搜索-最大化最小值 POJ1064 2456 3258 3273 3104 3045
- 挑战程序竞赛系列(16):3.1最大化最小值
- 挑战程序设计竞赛(第2版)
- 《挑战程序设计竞赛》 读后感
- 挑战程序设计竞赛:三角形
- 《挑战程序设计竞赛》 读后感
- 挑战程序设计竞赛(1)
- 第四届图灵杯程序设计竞赛
- 挑战程序设计竞赛p42(贪心)
- ACM Ball(挑战程序设计竞赛)
- ACM Hopscotch(挑战程序设计竞赛)
- ACM Osenbei(挑战程序设计竞赛)
- ACM Packets(挑战程序设计竞赛)
- 挑战程序设计竞赛---POJ.2686
- 挑战程序设计竞赛---POJ.3233
- cocos2d-x学习之将各种弹窗按顺序显示出来
- VIM快捷键助记
- web 执行 mina staging deploy 发布项目到测试环境出现 mina aborted!
- 用户刷新页面时重复提交表单解决办法
- Windows网络守门人UserLock更新至v9.6,可通过Webhooks获取实时登录通知
- 挑战程序设计竞赛-第四版-3.1.4 最大化平均值
- 关于802.11帧格式中为什么会有三个(或四个)地址?
- ubuntu 安装开发工具
- ubuntu 忘记用户名及密码解决办法
- java中synchronized的使用和理解
- 浅析Java语言与C++语言的区别
- 【慕课网实战课程笔记】Vue.js高仿饿了么外卖App
- 小玩具——温度采集项目(八)
- 几维安全最新APP加密神器,国内首款全平台移动代码虚拟机KiwiVM即将发布