博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
01分数规划
阅读量:5292 次
发布时间:2019-06-14

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

http://www.51nod.com/Challenge/Problem.html#problemId=1257

#include
#define fi first#define se second#define INF 0x3f3f3f3f#define LNF 0x3f3f3f3f3f3f3f3f#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#define pqueue priority_queue#define NEW(a,b) memset(a,b,sizeof(a))const double pi=4.0*atan(1.0);const double e=exp(1.0);const double eps=1e-10;const int maxn=4e5+8;typedef long long LL;typedef unsigned long long ULL;const LL mod=1e9+7;const ULL base=1e7+7;const int maxp=26+5;using namespace std;int w[maxn],p[maxn];pair
d[maxn];int main(){ int n,k; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ scanf("%d%d",&w[i],&p[i]); } double l=0.0,r=50001.0; double mid; double sz; LL fz,fm; while(l+eps<=r){ mid=(l+r)/2.0; sz=0.0; for(int i=1;i<=n;i++){ d[i].fi=(double)p[i]-mid*w[i]; d[i].se=i; } sort(d+1,d+1+n); for(int i=n;i>=n-k+1;i--){ sz+=d[i].fi; } if(sz>=eps){ fm=0; fz=0; for(int i=n;i>=n-k+1;i--){ fm+=p[d[i].se]; fz+=w[d[i].se]; } l=mid; } else{ r=mid; } } LL g=__gcd(fm,fz); fm/=g; fz/=g; cout<
<<'/'<
<

 

转载于:https://www.cnblogs.com/Profish/p/11563363.html

你可能感兴趣的文章
FZU 2129 子序列个数 (动态规划)
查看>>
20155324 2016-2017-2 《Java程序设计》第7周学习总结
查看>>
CSS清浮动处理(Clear与BFC)
查看>>
thinkphp路由
查看>>
HDU - 1248-寒冰王座
查看>>
angular OnChange事件
查看>>
owin Oauth
查看>>
java String 强化操作 判断数字 字符串转阿拉伯数字,相似度等等
查看>>
Win(Phone)10开发第(5)弹,本地媒体服务器的一些注意事项
查看>>
[HDU5536] Chip Factory
查看>>
面向对象与设计模式
查看>>
Android热修复原理
查看>>
算法(二):查找
查看>>
●BZOJ 3529 [Sdoi2014]数表
查看>>
Linux禁止root账户远程登录
查看>>
php 单例模式
查看>>
Angular项目中引入jQuery
查看>>
C# Linq 交集、并集、差集、去重
查看>>
JAVA初始化顺序
查看>>
(转)MSDN Library “已取消到该网页的导航”解决办法
查看>>