$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$
随机推荐
- python----操作Memcache、redis、RabbitMQ、SQLAlchemy
操作本质都是通过socket发送命令 Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次 ...
- python-----堡垒机前戏paramiko模块及进阶
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: i ...
- Hbase数据模型 列族
- Part10-字符型设备驱动模型-part10.1-使用字符型设备
‘ ’
- Mysql 锁表处理
-- 查看正在被锁定的的表 show ; -- 查看进程号 show processlist; -- 杀掉进程 : -- 表级锁次数 show status like 'Table%'; +----- ...
- Java排序算法总结
1.冒泡排序 冒泡排序是排序算法中最基本的一种排序方法,该方法逐次比较两个相邻数据的大小并交换位置来完成对数据排序,每次比较的结果都找出了这次比较中数据的最大项,因为是逐次比较,所以效率是O(N^2) ...
- PageProxy分页的实现
PageProxy是Ext.Net实现的一种分页方式,PageProxy通过实现OnReadData事件来完成分页. <ext:Store runat=" OnReadData=&qu ...
- HDU-6668-Game 百度之星第一场B
在多个连续的区间段中,选出连续重复度最高的区间,这样连续选出多个重复度最高的不相交区间,然后从第一个区间的左边已经右边开始,连续贪心即可,答案取最小值 #include<iostream> ...
- Python os.getcwd() 方法
Python os.getcwd() 方法 Python OS 文件/目录方法 概述 os.getcwd() 方法用于返回当前工作目录. 语法 getcwd()方法语法格式如下: os.getcwd ...
- git clone出现Permission denied (publickey)解决办法
一.错误 git clone git@gitee.com:wangzaiplus/xxx.git, 出现Permission denied (publickey) 二.原因 无权限, 未将公钥添加至G ...