poj 1157 LITTLE SHOP OF FLOWERS DP 背包问题变形
2011-08-27 11:25
288 查看
dp[i][j] 表示前i个花瓶装j朵花,类似于体积刚好为V的01背包问题
在本题中花瓶可以选择使用或者不使用,类似于背包问题中的物品,背包问题中的体积即为本题的花瓶数
总体积为v,有f个物品,每一个体积为1,价值为value[f][v]
由于是刚好装满背包,所以初始化dp[][0] = 0;其它初始化为极小值
#include<iostream>
using namespace std;
int max(int a,int b)
{
return a > b ? a : b;
}
int main()
{
int dp[105][105],f,v,i,j,value[105][105];
scanf("%d%d",&f,&v);
for(i = 1;i <= f;i++)
for(j = 1;j <= v;j++)
scanf("%d",&value[i][j]);
for(i = 0;i <= f;i++)
for(j = 1;j <= v;j++)
dp[i][j] = -1000;
for(i = 0;i <= v;i++)
dp[i][0] = 0;
for(i = 1;i <= v;i++)
for(j = 1;j <= f;j++)
dp[i][j] = max(dp[i-1][j],dp[i-1][j-1] + value[j][i]);
printf("%d\n",dp[v][f]);
return 0;
}
在本题中花瓶可以选择使用或者不使用,类似于背包问题中的物品,背包问题中的体积即为本题的花瓶数
总体积为v,有f个物品,每一个体积为1,价值为value[f][v]
由于是刚好装满背包,所以初始化dp[][0] = 0;其它初始化为极小值
#include<iostream>
using namespace std;
int max(int a,int b)
{
return a > b ? a : b;
}
int main()
{
int dp[105][105],f,v,i,j,value[105][105];
scanf("%d%d",&f,&v);
for(i = 1;i <= f;i++)
for(j = 1;j <= v;j++)
scanf("%d",&value[i][j]);
for(i = 0;i <= f;i++)
for(j = 1;j <= v;j++)
dp[i][j] = -1000;
for(i = 0;i <= v;i++)
dp[i][0] = 0;
for(i = 1;i <= v;i++)
for(j = 1;j <= f;j++)
dp[i][j] = max(dp[i-1][j],dp[i-1][j-1] + value[j][i]);
printf("%d\n",dp[v][f]);
return 0;
}
相关文章推荐
- poj 2229 完全背包变形(求解整数拆分问题)
- poj 2385 背包问题变形
- POJ 1837:Balance:动态规划_背包问题变形
- POJ 1742多重背包问题
- poj(2184)——Cow Exhibition(01背包变形)
- POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
- poj 3311 Hie with the Pie 旅行商问题变形 记录最短路径压缩状态
- 分组背包问题Matlab实现——之基本背包变形
- POJ 2184 Cow Exhibition(01背包变形)
- ZOJ1149 POJ1014 HDU1059 Dividing,多重背包问题
- hdu3033 I love sneakers! (背包问题变形 每种至少买一个)
- poj 1882完全背包变形
- poj 2484 Cow Exhibition 【变形0-1背包】
- poj 1160 Post Office--DP--类背包问题
- 经典背包问题 POJ 3624
- poj 1276 多重背包问题
- Poj 2392 多重背包变形(模板)
- 多重背包变形--poj2392
- 背包问题的变形
- (博客搬迁啦)pku1276多重背包问题(http://poj.org/problem?id=1276)