$POJ$2976 $Dropping\ tests$ 01分数规划+贪心
正解:01分数规划
解题报告:
板子题鸭,,,
显然考虑变成$a[i]-mid\cdot b[i]$,显然无脑贪心下得选出最大的$k$个然后判断是否大于0就好(,,,这么弱智真的算贪心嘛$TT$
然后就做完辣,,,
我真的$jio$得我做的题越来越水了是为什么,,,啊难过,越来越菜了可海星$TT$
#include<algorithm>
#include<iomanip>
#include<cstdio>
using namespace std;
#define il inline
#define lf double
#define gc getchar()
#define rf register lf
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i) const int N=+;const lf eps=1e-;
int n,K;
bool gdgs=;
struct node{lf a,b,dat;}nod[N]; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il bool cmp(node gd,node gs){return gd.dat<gs.dat;}
il bool chck(rf x)
{
lf sum=;rp(i,,n)nod[i].dat=(lf)nod[i].a*-nod[i].b*x,sum+=nod[i].dat;sort(nod+,nod++n,cmp);
rp(i,,K)sum-=nod[i].dat;return sum>=;
} int main()
{
while(gdgs)
{
n=read();K=read();if(!n && !K)return ;
rp(i,,n)scanf("%lf",&nod[i].a);rp(i,,n)scanf("%lf",&nod[i].b);
rf l=,r=;
while(r-l>eps){rf mid=(lf)(l+r)/;if(chck(mid))l=mid;else r=mid;}
printf("%.0f\n",l);
}
return ;
}
啊对了说一个这题杀我的点,,,就是$double$的输出要用$lf$,,,具体原因看评论区趴懒得贴过来了$QwQ$,,,$get$了一个新知识点呢$QwQ$
随机推荐
- Data Flow-File Read-网络距离
- oracle函数 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
[功能]根据条件返回相应值 [参数]c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null 注:值1……n 不能为条件表达式,这种情况只能用case when then end解 ...
- dev stg prd 开发 测试 生产环境
dev development 开发环境stg stage 测试环境prd product 线上环境
- selenium webdriver学习(三)------------执行js脚本
selenium webdriver学习(三)------------执行js脚本 博客分类: Selenium-webdriver 在用selenium 1.X的时候常常会用到getEval() ...
- iptables禁止强制访问指定的站点
要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则: 1. 打开 ...
- Laravel5使用ElasticSearch
https://blog.csdn.net/qq_16829085/article/details/80725125 安装elasticsearch和ik插件 (elasticsearch的使用需要配 ...
- sequence——强行推式子+组合意义
sequence 考虑长度<=x的方案数F(x),然后(F(x)-F(x-1))*x贡献到答案里 n平方的做法可以直接DP, 感觉有式子可言, 就推出式子:类似coat,每个长度为i的计算i次. ...
- pytorch lstm crf 代码理解 重点
好久没有写博客了,这一次就将最近看的pytorch 教程中的lstm+crf的一些心得与困惑记录下来. 原文 PyTorch Tutorials 参考了很多其他大神的博客,https://blog.c ...
- java什么是方法(Method)?
方法是一组为了实现特定功能的代码块的集合.方法在语法上的功能主要有以下两个: ①:结构化代码 将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,也就是程序的可维护性强. ②:减少代码重复 ...
- set和map容器、
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值:另外,还 ...