HDOJ1864背包问题.
2011-10-06 01:22
274 查看
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2602
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<math.h>
#include<string.h>
const int inf = 0x3f3f3f;
using namespace std;
int test,dp[1001],n,v,value[1001],weight[1001];
int main()
{
while(scanf("%d",&test) != EOF)
{
while(test--)
{
scanf("%d%d",&n,&v);
for(int i = 1 ; i <= n ; i++)
scanf("%d",&value[i]);
for(int i = 1 ; i <= n ; i++)
scanf("%d",&weight[i]);
memset(dp,0,sizeof(dp));
// for(int i = 1 ; i <= n ; i++)
// {
// for(int j = 0 ; j <= v ; j++)//尼玛啊..j=0和j=1不是一样的么.擦..!!!
// {
// if(j >= weight[i])
// dp[i][j] = max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]);
// else
// dp[i][j] = dp[i-1][j];
// }
// }
//学习第二种优化空间的算法做法:
if(v)
{
for(int i = 1 ; i <= n ; i++)
{
for(int j = v ; j >= 0 ; j--)
{
if(j >= weight[i])
dp[j] = max(dp[j],dp[j-weight[i]]+value[i]);
}
}
}
printf("%d\n",dp[v]);
}
}
}
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<math.h>
#include<string.h>
const int inf = 0x3f3f3f;
using namespace std;
int test,dp[1001],n,v,value[1001],weight[1001];
int main()
{
while(scanf("%d",&test) != EOF)
{
while(test--)
{
scanf("%d%d",&n,&v);
for(int i = 1 ; i <= n ; i++)
scanf("%d",&value[i]);
for(int i = 1 ; i <= n ; i++)
scanf("%d",&weight[i]);
memset(dp,0,sizeof(dp));
// for(int i = 1 ; i <= n ; i++)
// {
// for(int j = 0 ; j <= v ; j++)//尼玛啊..j=0和j=1不是一样的么.擦..!!!
// {
// if(j >= weight[i])
// dp[i][j] = max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]);
// else
// dp[i][j] = dp[i-1][j];
// }
// }
//学习第二种优化空间的算法做法:
if(v)
{
for(int i = 1 ; i <= n ; i++)
{
for(int j = v ; j >= 0 ; j--)
{
if(j >= weight[i])
dp[j] = max(dp[j],dp[j-weight[i]]+value[i]);
}
}
}
printf("%d\n",dp[v]);
}
}
}
相关文章推荐
- HDoj.1864 最大报销额【动归、背包】 2016/04/11
- 暑期dp46道(35)--HDOJ 2159 FATE 背包问题
- HDOJ 1284 钱币兑换问题 (求多重背包恰好装满总方案数)
- hdoj 1171 多重背包问题
- hdoj 1248 完全背包问题
- HDOJ-1864 最大报销额[DP-01背包问题]
- HDOJ2111 Saving HDU(背包问题)
- HDOJ 题目1284钱币兑换问题(动态规划,完全背包)
- HDU 1864(最大报销额)基础0-1背包问题
- HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)
- DP入门, 0-1背包问题(HDOJ 2602类似)
- hdoj 1014 Divding(03背包问题)
- 背包问题题型 龟兔赛跑 hdoj 2059
- HDOJ 2111 Saving HDU (经典的背包贪心问题)
- HDOJ---2159 FATE[DP-背包问题]
- hdoj 1864 最大报销额【0-1背包变形】
- HDOJ 2191 多重背包问题
- HDOJ2124 Repair the Wall(类似背包问题)
- 【集训笔记】动态规划背包问题【HDOJ1421【HDOJ1058【HDOJ2546
- 背包问题 动态规划 HDOJ1114