2018.09.11 poj2976Dropping tests(01分数规划)
传送门
01分数规划板子题啊。
就是简单变形移项就行了。
显然 ∑i=1na[i]∑i=1nb[i]≤k" role="presentation" style="position: relative;">∑ni=1a[i]∑ni=1b[i]≤k∑i=1na[i]∑i=1nb[i]≤k
于是我们二分k。
只需检验:
∑i=1n(a[i]−b[i]∗k)≤0" role="presentation" style="position: relative;">∑ni=1(a[i]−b[i]∗k)≤0∑i=1n(a[i]−b[i]∗k)≤0
代码:
#include<cstdio>
#include<algorithm>
#include<iostream>
#define N 1005
using namespace std;
int n,k;
double c[N],a[N],b[N];
inline bool check(double f){
double ret=0;
for(int i=1;i<=n;++i)c[i]=a[i]-b[i]*f;
sort(c+1,c+n+1);
for(int i=k+1;i<=n;++i)ret+=c[i];
return ret>=0;
}
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
int main(){
while(1){
n=read(),k=read();
if(!n&&!k)break;
for(int i=1;i<=n;++i)a[i]=read();
for(int i=1;i<=n;++i)b[i]=read();
double l=0.0,r=1.0;
while(r-l>1e-10){
double mid=(l+r)*1.0/2.0;
if(check(mid))l=mid;
else r=mid;
}
printf("%.0f\n",l*100);
}
return 0;
}
2018.09.11 poj2976Dropping tests(01分数规划)的更多相关文章
- 2018.09.09 poj2949Word Rings(01分数规划+spfa判环)
传送门 这题要先巧妙的转化一下. 对于每个字符串,我们把头尾的两个小字符串对应的点连边,边权是这个字符串的长度. 这样最多会出现26*26个点. 这个时候就只用求出边权和跟边数的最大比值了. 这个显然 ...
- Dropping tests(01分数规划)
Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8176 Accepted: 2862 De ...
- POJ 2976 Dropping tests 01分数规划 模板
Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6373 Accepted: 2198 ...
- POJ 2976 Dropping tests 01分数规划
给出n(n<=1000)个考试的成绩ai和满分bi,要求去掉k个考试成绩,使得剩下的∑ai/∑bi*100最大并输出. 典型的01分数规划 要使∑ai/∑bi最大,不妨设ans=∑ai/∑bi, ...
- [poj2976]Dropping tests(01分数规划,转化为二分解决或Dinkelbach算法)
题意:有n场考试,给出每场答对的题数a和这场一共有几道题b,求去掉k场考试后,公式.的最大值 解题关键:01分数规划,double类型二分的写法(poj崩溃,未提交) 或者r-l<=1e-3(右 ...
- $POJ$2976 $Dropping\ tests$ 01分数规划+贪心
正解:01分数规划 解题报告: 传送门! 板子题鸭,,, 显然考虑变成$a[i]-mid\cdot b[i]$,显然无脑贪心下得选出最大的$k$个然后判断是否大于0就好(,,,这么弱智真的算贪心嘛$T ...
- POJ - 2976 Dropping tests(01分数规划---二分(最大化平均值))
题意:有n组ai和bi,要求去掉k组,使下式值最大. 分析: 1.此题是典型的01分数规划. 01分数规划:给定两个数组,a[i]表示选取i的可以得到的价值,b[i]表示选取i的代价.x[i]=1代表 ...
- 【POJ2976】Dropping tests - 01分数规划
Description In a certain course, you take n tests. If you get ai out of bi questions correct on test ...
- POJ2976 Dropping tests(01分数规划)
题意 给你n次测试的得分情况b[i]代表第i次测试的总分,a[i]代表实际得分. 你可以取消k次测试,得剩下的测试中的分数为 问分数的最大值为多少. 题解 裸的01规划. 然后ans没有清0坑我半天. ...
随机推荐
- 迭代器iter()
from collections import Iterable print(isinstance({},iterable)) # 判断是否可迭代 from collections import It ...
- Tocmat 启动错误 Port 8005 required by tomcat v7.0 server at localhost is already in use
1: netstat -ano!findstr 8005 2: taskkill /pid 6476 /f
- springmvc initial初始化
项目需求是在启动服务时,将某些内容放入到共同里面,例如数据字典表内容. 但数据字典表内容存在于数据库中,使用传统的listener在加载时,无法获取service实例,打开事务控制. springmv ...
- java常用的Utils写法
Utils: 获取年龄 属性文件获取 BeanCopy 分页 MapUtils 获取年龄: /** * 根据传入的日期计算年龄,因时间戳是从1970年开始计算的 * @param date * ...
- 前端-CSS-7-标准文档流&行内元素和块级元素转换
1.什么是标准文档流 <!-- 什么是标准文档流 宏观的将,我们的web页面和ps等设计软件有本质的区别 web 网页的制作 是个“流” 从上而下 ,像 “织毛衣” 而设计软件 ,想往哪里画东 ...
- React 简单介绍
React 简单介绍 作者 RK_CODER 关注 2014.12.10 17:37* 字数 2516 阅读 55715评论 6喜欢 70 why React? React是Facebook开发的一款 ...
- centor os 安装nginx
安装nginx和health check wget http://nginx.org/download/nginx-1.4.5.tar.gz git clone https://github.com/ ...
- Hadoop 执行 hdfs 命令烦人的警告信息
问题描述: 安装完 hadoop,执行 hdfs dfs -ls 命令时,报警告如下: -- ::, WARN util.NativeCodeLoader: Unable to load native ...
- Spring Boot中启动HTTPS
一,生成https 的证书 1,在相应的根目录下 keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize -keyst ...
- Delphi 解析系统环境变量
// http://www.outofmemory.cn function ExpandEnvironment(const strValue: string): string; var chrResu ...