HDOJ 3033 I love sneakers! (分组背包)
来源:互联网 发布:fifaol3数据库电脑版 编辑:程序博客网 时间:2024/05/29 16:02
超级传送门
dp[i][j]表示对于第i组物品,在花费j价格时的最大价值,有三个子状态
dp[i][j]表示不取该物品
dp[i][j-w]+v 表示选择该物品,但不是第一次
dp[i-1][j-w]+v表示选择该物品,但是是第一次
dp[i][j]=max(dp[i][j],dp[i-1][j-w]+v,dp[i][j-w]+v);
/*HODJ3033作者:陈佳润2013-04-30*/#include<iostream>#include<string.h>#include<queue>using namespace std;#define max(a,b) (a>b?a:b)queue<int>QV[12];//存放一组内物品的价值queue<int>QW[12];//存放一组内物品的代价int dp[110][10005];int m,n,k;void GroupPack(int k){int i;while(!QW[k].empty()){//对于每一组内的物品for(i=m;i>=QW[k].front();i--){//对于每一个物品空间if(i>=QW[k].front()){//在三个状态中找出最优的dp[k][i]=max(dp[k][i],dp[k][i-QW[k].front()]+QV[k].front());dp[k][i]=max(dp[k][i],dp[k-1][i-QW[k].front()]+QV[k].front());}}QW[k].pop();QV[k].pop();}}int main(){int i,a,b,c,j;while(cin>>n>>m>>k){ //初始化for(i=1;i<=k;i++){for(j=0;j<=m;j++)dp[i][j]=-1;}for(i=0;i<=m;i++) dp[0][i]=0;//读取for(i=1;i<=n;i++){cin>>a>>b>>c;QV[a].push(c);QW[a].push(b);}for(i=1;i<=k;i++){//分组背包GroupPack(i);}if(dp[k][m]<0)cout<<"Impossible"<<endl;elsecout<<dp[k][m]<<endl;}return 0;}
- HDOJ 3033 I love sneakers! (分组背包)
- HDOJ 题目3033 I love sneakers!(分组背包)
- (DP,分组背包) I love sneakers! -- HDOJ
- hdu 3033 I love sneakers! 分组背包
- HDU 3033 I love sneakers! (分组背包)
- hdu 3033 I love sneakers!(分组背包)
- hdu 3033 I love sneakers! (分组背包)
- HDU 3033 I love sneakers! / 分组背包
- HDU 3033 I love sneakers! 分组背包
- HDU 3033 I love sneakers! 分组背包
- I love sneakers! hdu 3033 分组背包
- hdu 3033 I love sneakers! 分组背包
- hdu 3033 I love sneakers! (分组背包)
- hdu 3033 I love sneakers! 分组背包
- hdu 3033 I love sneakers! 分组背包
- hdu 3033 I love sneakers! 分组背包
- HDU 3033 I love sneakers! (分组背包)
- (分组背包)I love sneakers!(hdu3033)
- MyEclipse安装Ext JS和jQuery自动提示功能
- 搬到新家了。。
- uva 10054 - The Necklace
- 海量jQuery插件
- GB28181 SIP视频监控标准之 历史文件检索
- HDOJ 3033 I love sneakers! (分组背包)
- android libwebcore compile error
- java反射的简单引用(模板)
- 杭电3782
- GB28181 SIP视频监控系列标准之 历史音视频回放
- 修改Linux的IP、主机名及主机名和IP的映射(设置DNS解析)
- 首字母变大写
- 遍历换行算法(table里面循环tr,td,灵活处理行和列)
- 两种类型的Java程序