51Nod1257(初学01分数规划)
来源:互联网 发布:我和僵尸有个约会知乎 编辑:程序博客网 时间:2024/06/05 18:38
基本的01分数规划问题
#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int maxn = 50005;const double eps = 1e-9;ll gcd(ll x,ll y){return y ? gcd(y,x % y) : x;}struct node{ int w; int p; double val; bool operator < (const node& T) const{ return val>T.val; }}b[maxn];double mid;ll anss,ansx,tmps,tmpx;int n,k;bool check(){ int tot = 0; for(int i=0;i<n;i++) b[i].val = 1.0*b[i].p-b[i].w*mid; sort(b,b+n); double sum = 0; tmps = 0; tmpx = 0; for(int i=0;i<k;i++){ sum += b[i].val; tmps += b[i].p; tmpx += b[i].w; } if(sum-0>=eps) return true; return false;}int main(){ scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d%d",&b[i].w,&b[i].p); double l = 0,r = 500000; for(int i=0;i<100;i++) { mid = (l+r)/2; if(check()) { l = mid; anss = tmps; ansx = tmpx; } else r = mid; } ll tmp = gcd(anss,ansx); anss/=tmp; ansx/=tmp; printf("%lld/%lld\n",anss,ansx); return 0;}
阅读全文
0 0
- 51Nod1257(初学01分数规划)
- 【51Nod1257】背包问题 V3
- XJOI 挖金矿(01分数规划)
- [POJ2976]Dropping tests(01分数规划)
- [POJ2728]Desert King(01分数规划)
- [POJ3621]Sightseeing Cows(01分数规划)
- [POJ3155]Hard Life(01分数规划)
- [Algorithm]01分数规划
- 01分数规划
- 总结01分数规划
- 01分数规划
- POJ3757 01分数规划
- 01分数规划
- 01分数规划问题
- 01分数规划
- 01分数规划
- 01分数规划
- <01分数规划>淬炼神体
- Android 03 style简单介绍
- 继承,重载,多态
- tablayout上显示网络数据(xUtils请求)s
- 转载 2014年04月22日 09:01:19 VC6.0工程在编译时由于设置问题有时不会生成release版本,只有debug版本。 解决犯非法如下: 工程——设置,将Setting for
- POJ2777Count Color
- 51Nod1257(初学01分数规划)
- Maven详解(一)------ Maven概述
- 迪杰斯特拉基本算法
- 关于使用Eclipse导出jar文件时图片不能显示的问题
- Linux基础知识
- JSON对象解析为JavaScript对象
- 2017.8.23
- Elasticsearch Reference 5.5 中文翻译2
- 虚函数表