博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[POJ3111]K Best
阅读量:6757 次
发布时间:2019-06-26

本文共 1109 字,大约阅读时间需要 3 分钟。

来源:

Northeastern Europe 2005, Northern Subregion

思路:

分数规划经典题。二分分数值$x$,判断其是否满足$\sum (v - w \times m) \geq 0$即可。

针对$v - w \times m$从大到小排序,然后对前$k$项求和,检验是否非负。

1 #include
2 #include
3 #include
4 #include
5 #include
6 inline int getint() { 7 char ch; 8 while(!isdigit(ch=getchar())); 9 int x=ch^'0';10 while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');11 return x;12 }13 const double eps=1e-6;14 const int N=100000;15 int n,k;16 struct Jewel {17 int v,w,id;18 double sum;19 bool operator > (const Jewel &x) const {20 return sum>x.sum;21 }22 };23 Jewel j[N];24 std::vector
ans;25 inline bool check(const double x) {26 ans.clear();27 for(int i=0;i
());31 double sum=0;32 for(int i=0;i
=0;37 }38 int main() {39 n=getint(),k=getint();40 for(int i=0;i
=eps) {47 double mid=(l+r)/2;48 if(check(mid)) {49 l=mid;50 }51 else {52 r=mid;53 }54 }55 for(unsigned i=0;i

 

转载于:https://www.cnblogs.com/skylee03/p/7337381.html

你可能感兴趣的文章
《c程序设计语言》读书笔记-5.4-指针实现strend
查看>>
Android 系统默认音量和最大音量
查看>>
MPlayer-ww 增加边看边剪切功能
查看>>
vim利器:vundle 管理器和NERDTree插件
查看>>
系统虚拟机
查看>>
java集合之ArrayList(1)
查看>>
getMemory的经典例子
查看>>
android分析之mutex
查看>>
Tyvj P3119 核电站问题 动态规划
查看>>
【操作系统】总结三(内存管理)
查看>>
关于byte[]和字符串的转换
查看>>
Swashbuckle.AspNetCore(v2.5.0)使用小记
查看>>
VirtulBox添加自定义分辨率
查看>>
Android Training Caching Bitmaps 翻译
查看>>
SpringMVC (五)视图解析器
查看>>
微信开发
查看>>
P3165 [CQOI2014]排序机械臂
查看>>
拉格朗日反演
查看>>
交通流量
查看>>
BZOJ3331 BZOJ2013 压力
查看>>