0-1分数规划
设x[i]等于1或0.
则我们所求的比率 rate = ∑(cost[i] * x[i]) / ∑(cost[i] * x[i]), 0≤i<m .

z( rate ) = ∑(cost[i] * x[i]) - rate* ∑(dist[i] * x[i])

二分法求解:在定出一个搜索范围和精度之后,可以使用二分法进行搜索:对于当前的搜索区间[left,right],mid=(left+right)/2,根据z(mid)的值及z(rate)的增减性,对搜索区间进行更新:
z(mid)>0,上调区间,使left=mid
z(mid)<0,下调区间,使right=mid
经过有限次搜索之后便能找到所求比率。

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxx=10005;
const int inf=0x3f3f3f3f;
double cost[maxx];
double dist[maxx];
int n,k;
int Findmid(double rate){double sum=0;double dis[maxx];for(int i=1;i<=n;i++){dis[i]=cost[i]-rate*dist[i];}sort(dis+1,dis+n+1);for(int i=n;i>k;i--){sum+=dis[i];}return sum>=0;
}
int main(){while(scanf("%d %d",&n,&k)!=EOF){if(n==0&&k==0)break;for(int i=1;i<=n;i++){scanf("%lf",&cost[i]);}for(int j=1;j<=n;j++){scanf("%lf",&dist[j]);}double left=0,right=inf;for(int i=1;i<=105;i++){double mid=(left+right)/2;if(Findmid(mid)){left=mid;}else{right=mid;}}  printf("%.0lf\n",left*100);}return 0;
}

poj2976(0-1分数规划)相关推荐

  1. poj2976(0-1 分数规划)

    poj2976(0-1 分数规划) 题意 给定n个二元组 ( a i , b i ) (a_{i},b_{i}) (ai​,bi​)除去n个,剩下的n-k组成集合S作 ∑ i ∈ S a i ∑ i ...

  2. bzoj 3232 圈地游戏——0/1分数规划(或网络流)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3232 当然是0/1分数规划.但加的东西和减的东西不在一起,怎么办? 考虑把它们合在一起.因为 ...

  3. jzoj4017-逃跑【0/1分数规划,线段树,dp】

    正题 题目链接:https://jzoj.net/senior/#contest/show/3011/2 题目大意 n+1n+1n+1个连续的地方,每个地方有(a,b,c)(a,b,c)(a,b,c) ...

  4. jzoj3852-单词接龙【0/1分数规划,负环】

    正题 题目链接:https://jzoj.net/senior/#main/show/3852 题目大意 nnn个单词串,头尾有两个相同单词就可以连在一起,求一个最长的环使得平均单词长度最长. 解题思 ...

  5. [学习笔记]0/1分数规划

    对于一类:每个元素有两个属性A,B 选择若干个元素,使得$\frac{\sum A_i}{\sum B_i}$取到最值. 这类问题可以采用二分的方法.然后构造出模型用于判定. 推导: 二分mid 如果 ...

  6. #0/1分数规划,SPFA,负环#洛谷 1768 天路

    题目链接 分析 可以发现,这是一道0/1分数规划的题目,需要二分答案,然后判定是否存在负环,所以说bfs貌似不高效,那就用dfs吧,若二分答案为0,即不合法 代码 #include <cstdi ...

  7. 转载二分 01 分数规划即最大化平均值的证明0/1分数规划、最优比率生成树、最优比率环

    首页 新随笔 联系 管理 订阅 随笔- 20  文章- 0  评论- 9 [Algorithm]01分数规划--Update:2012年7月27日 [关键字] 0/1分数规划.最优比率生成树.最优比率 ...

  8. POJ2976——Dropping tests(0/1分数规划)

    传送门 最简单的分数规划 对于最终答案ans,有 ans=Σai∗100Σbians=\frac{Σa_i*100}{Σb_i}ans=Σbi​Σai​∗100​ 则 Σbi∗ans=Σai∗100Σ ...

  9. [JSOI2016] 最佳团体(0/1分数规划 + 树形dp)

    problem luogu-P4322 solution 假设每个人是否被招募,用 xi={0,1}x_i=\{0,1\}xi​={0,1} 代替,max⁡∑pi∗xi∑si∗xi\max\frac{ ...

最新文章

  1. python 操作word页眉表格_python批量设置多个Excel文件页眉页脚的脚本
  2. 临河智慧城管:让城市更和谐
  3. DataGridView 中发生以下异常: System.Exception: 是 不是 Decimal 的有效值。 ---> System.FormatException: 输入字符串的格式不正确。
  4. AVFrame中data与linesize关系
  5. 火爆背后的挑战:直播平台的高并发架构设计丨视频PPT下载
  6. 在项目中寻找代码的坏味道(命名)
  7. sharepoint对象模型性能比较
  8. 装箱问题(信息学奥赛一本通-T1295)
  9. centos 6.3最小化安装,无法上网解决方法
  10. shell提取文件中的dojo mobile类
  11. python下载步骤-python3.8下载及安装步骤详解
  12. python免费课程400节-太原Python编程课哪家比较有优势
  13. python可以给你干什么-python可以做什么,你心动了吗?
  14. MySQL复制应用中继日志解析
  15. NXP IMX6ULL芯片时钟系统全概况
  16. php 截取图片像素,php 如何修改图片像素大小
  17. 华为手机通过ADB永久关闭系统更新
  18. mybatis/mybatis plus lambda会话缓存失效(1)
  19. 计算时间复杂度--(简单版)
  20. 鼠标拖拽盒子跟着鼠标在页面任意位置移动

热门文章

  1. Python设计模式-享元模式
  2. 自然语言处理(nlp)之词袋模型及句子相似度
  3. 列表标签ul、ol、dl、li
  4. attr,abbr,addr三个常见的单词意思
  5. 代码注释照样可以玩出花来
  6. 拒绝遗忘:高效的动态规划算法
  7. 【从零学习OpenCV 4】了解OpenCV的模块架构
  8. 想要去阿里面试?你必须得跨过 JVM 这道坎!
  9. iOS 的组件化开发
  10. 微信红包如何抢大包、直播反垃圾、老骗局翻新……这一期宅客周刊你值得拥有...