SDUT 2408 Pick apples 贪心+背包(大容量背包)
来源:互联网 发布:淘宝女装代发货源 编辑:程序博客网 时间:2024/06/07 01:57
点击打开链接
种苹果,每种都有对应的Size,Value,给你一个背包空间,求最大的价值。
///贪心+背包/// 先对大容量尽可能装性价比最高的, 然后剩余的容量(比任何单个物品的容量都大) 进行完全背包///理由///反证明:假设装了一定个数的性价比最高的东西了,然后剩余的容量进行完全背包,#include<iostream>#include<cmath>#include<string>#include<algorithm>#include<queue>#include<map>#include<set>#include<cstring>#include<cstdio>using namespace std;struct node{ int vi,pi; double w;}p[100];bool cmp(node p1,node p2){ return p1.w>p2.w;}long long dp[10000];int main(){ int n,m,T,v; while(~scanf("%d",&T)) { for(int cas=1;cas<=T;cas++) { memset(dp,0,sizeof(dp)); for(int i=0;i<3;i++) { scanf("%d%d",&p[i].vi,&p[i].pi); p[i].w=1.0*p[i].pi/p[i].vi; } sort(p,p+3,cmp); scanf("%d",&v); int newV=v,bignum=0; long long bigvalue=0; if(v>1000) { newV=v-1000; bignum=newV/p[0].vi; newV=v-bignum*p[0].vi; bigvalue=(long long)bignum*p[0].pi; } for(int i=0;i<3;i++) { for(int j=p[i].vi;j<=newV;j++) { dp[j]=max(dp[j],dp[j-p[i].vi]+p[i].pi); } } printf("Case %d: %lld\n",cas,dp[newV]+bigvalue); } } return 0;}
0 0
- SDUT 2408 Pick apples 贪心+背包(大容量背包)
- SDUT:2408 Pick apples(贪心+完全背包)
- HDUT-2408-Pick apples(贪心+背包)
- SDUT 2408 Pick apples(完全背包+贪心)2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛
- Pick apples(动态规划,难点背包容量太大)
- SDUT 2408 Pick apples
- SDUT 2408 Pick apples
- SDUT 2408:Pick apples
- [2012山东ACM省赛] Pick apples (贪心,完全背包,枚举)
- sdut2408 pick apples (贪心+背包)山东省第三届ACM省赛
- Pick apples(山东省第三届ACM程序设计大赛 贪心+背包)
- HDU 5303 Delicious Apples(贪心 + 背包 2015多校啊)
- *HDU 5305 - Delicious Apples (贪心+背包)
- 01背包 背包容量大时新解
- UESTC Pick The Sticks (背包变形)
- HDU5543 Pick The Sticks(01背包)
- Pick apples
- Pick Apples
- 大话数据结构 第二章 读书笔记
- [4245]:A Famous Music Composer
- 关于VS中MFC中CString转char *的问题
- 在WAMPSERVER下增加多版本的PHP(PHP5.4,PHP5.6)支持
- hdu 1005 矩阵快速幂
- SDUT 2408 Pick apples 贪心+背包(大容量背包)
- xoj 1172
- 第三章 -寄存器
- CloseableHttpClient
- maven配置setting.xml文件详解
- iOS app 疑问解答
- easyui.min.js 报错rows is undefined
- Hexo安装百度统计流程
- 3月21号 雨