51nod 1257 背包问题 V3(二分)
来源:互联网 发布:java可以多继承吗 编辑:程序博客网 时间:2024/05/16 05:12
思路:二分答案然后判一判就可以了
#include<bits/stdc++.h>using namespace std;const int maxn = 50000+7;#define LL long longLL gcd(LL a,LL b){return b==0?a:gcd(b,a%b);}int n,k;struct Node{int w,p;double rate;}beg[maxn];bool cmp(Node a,Node b){return a.rate>b.rate;}int resw,resp;int answ,ansp;bool check(double p){ resw=0;resp=0;double mark=0.0; for(int i = 1;i<=n;i++)beg[i].rate = 1.0*beg[i].p-beg[i].w*p; sort(beg+1,beg+1+n,cmp);for(int i = 1;i<=k;i++){resw+=beg[i].w;resp+=beg[i].p;mark+=beg[i].rate;}if(mark>=0)return true;return false;}int main(){scanf("%d%d",&n,&k);for(int i = 1;i<=n;i++)scanf("%d%d",&beg[i].w,&beg[i].p);double l = 0.0,r=50000;for(int i = 0;i<=100;i++){ double mid = (l+r)/2;if(check(mid)){ answ=resw;ansp=resp;l=mid;}elser=mid;}LL gg = gcd(answ,ansp);answ/=gg;ansp/=gg;printf("%d/%d\n",ansp,answ);}
1257 背包问题 V3
基准时间限制:3 秒 空间限制:131072 KB 分值: 80 难度:5级算法题
收藏
关注
N个物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数),从中选出K件物品(K <= N),使得单位体积的价值最大。
Input
第1行:包括2个数N, K(1 <= K <= N <= 50000)第2 - N + 1行:每行2个数Wi, Pi(1 <= Wi, Pi <= 50000)
Output
输出单位体积的价值(用约分后的分数表示)。
Input示例
3 22 25 32 1
Output示例
3/4
0 0
- 51nod 1257 背包问题 V3(二分)
- 51nod 1257 背包问题 V3
- 51nod 1257 背包问题V3
- 51Nod-1257-背包问题 V3
- 51nod 1257 背包问题 V3
- 51 nod oj 1257 背包问题 V3【01分数规划】
- 二分查找,背包问题v3
- 背包问题-----51Nod
- 51nod 1086 背包问题 V2(多重背包问题)
- 【51Nod1257】背包问题 V3
- 多重背包问题(51Nod 1086)
- 51nod1085---背包问题(51nod基础:01背包)
- 51Nod 1086背包问题V2(多重背包)
- 51Nod 1085 背包问题(01背包 )
- 【51Nod】1085 - 背包问题(01背包)
- 51nod 1085 背包问题(01背包)
- 51nod 1086 背包问题 V2(多重背包)
- 51Nod-背包问题V2(多重背包+二进制优化)
- 写在前面的话
- leetcode 183. Customers Who Never Order
- 自定义控件,上图下字的Button,图片任意指定大小
- 优先队列
- 匿名内部类需要注意的事项
- 51nod 1257 背包问题 V3(二分)
- 设置字体大小px、em和rem区别
- Eclipse使用技巧(更新)
- Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
- Django——成绩管理系统部署及应用
- POJ2262 素数判定,万能的素数筛选
- 汇编语言一补充
- SpringMVC教程
- Unix网络编程 深入探索TCP客户/服务器程序