UVA - 10130 SuperSale
来源:互联网 发布:java gis地图开发 编辑:程序博客网 时间:2024/06/05 22:54
就是01背包,每个人同一件物品只能拿一个,但不同人可以拿同一件物品。。。
开始以为每件物品只有一件,一下子觉得这问题太难了。。首先最优子结构找不到,如果一个人的背包拿最优的,可能就会影响其他人拿得,最终导致总结果不是最优,也就是不具备无后效性,就想着怎么转化问题。。。可是一直想不出来,看了别人的题解,才猛然发现原来题目中没说一种物品只有一件,实际上是可以有多件的。。。
#include<cstdio>#include<cstring>#include<algorithm>#define MAX1 1100#define MAX2 100using namespace std;int s[MAX1][2],fam[MAX2],dp[MAX1][MAX2];int main(){ int t,n,g,i,j,tt,all; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d %d",&s[i][0],&s[i][1]); scanf("%d",&g); for(i=0;i<g;i++) scanf("%d",&fam[i]); all=0; for(i=0;i<g;i++) { memset(dp,0,MAX1*MAX2*4); for(j=1;j<=n;j++) { for(tt=0;tt<=fam[i];tt++) { if(tt>=s[j][1]) { dp[j][tt]=max(dp[j-1][tt-s[j][1]]+s[j][0],dp[j-1][tt]); } else dp[j][tt]=dp[j-1][tt]; } } all+=dp[n][fam[i]]; } printf("%d\n",all); } return 0;}
0 0
- uva 10130 SuperSale
- UVA 10130 SuperSale
- Uva 10130 - SuperSale
- UVa 10130 - SuperSale
- UVa 10130 - SuperSale
- UVa 10130 - SuperSale 背包
- uva 10130 - SuperSale
- UVa 10130 - SuperSale
- UVa 10130 - SuperSale
- Uva-10130-SuperSale
- UVa:10130 SuperSale
- UVA - 10130 SuperSale
- UVa 10130 - SuperSale
- UVa 10130 - SuperSale
- uva 10130 SuperSale
- uva 10130 SuperSale
- UVa 10130—SuperSale
- UVA - 10130 SuperSale
- struts2的s:iterator 标签 详解
- HDU 2122 Ice_cream’s world III 【最小生成树】
- xml语言
- 软件包管理系统 v
- 博弈知识汇总
- UVA - 10130 SuperSale
- PHP流程控制语句
- 关联分析学习算法篇Apriori
- Cocos2d-x学习之物理引擎概念基础
- kernel和initrd-1
- install mysql in centos 6
- SVM三种寻优方法matlab代码 grid search、GA、PSO
- centos input method
- 4.3、Libgdx启动类和配置