UVA 624 CD(打印路径的01背包)
2016-10-26 21:47
513 查看
Root | ![]() ![]() ![]() ![]() |
Time limit: 3.000 seconds |
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 1000;
int dp
, visit
, v
;
const int inf = -0x3f3f3f3f;
int main()
{
int n, m;
while(scanf("%d", &m)!=EOF)
{
scanf("%d", &n);
for(int i=0;i<n;i++)
{
scanf("%d", &v[i]);
}
memset(dp,0,sizeof(dp));
memset(visit,0,sizeof(visit));
for(int i=n-1;i>=0;i--)
{
for(int j=m;j>=v[i];j--)
{
if(dp[j]<dp[j-v[i]]+v[i])
{
visit[i][j]=1;
dp[j]=dp[j-v[i]]+v[i];
}
}
}
for(int i=0,j=dp[m];j>0&&i<n;i++)
{
if(visit[i][j])
{
printf("%d ",v[i]);
j-=v[i];
}
}
printf("sum:%d\n",dp[m]);
}
return 0;
}
相关文章推荐
- UVA 624 CD (01背包+打印路径)
- uva 624 CD (01背包+打印路径)
- UVA 624 CD (01背包+打印路径 或 dfs+记录路径)
- UVA 624 CD(01背包+dp打印路径)
- UVA624 CD,01背包+打印路径,好题!
- 01背包(打印路径) 之 uva 624
- CD - UVa 624 01背包记录路径
- UVA 624 CD (01背包 带路径)
- uva624 CD(dp 0-1 背包 打印路径)
- uva624(01背包+打印路径)
- UVA 624 - CD (01背包打印路径)
- uva 624 CD (0-1背包打印路径)
- uva624 CD (01背包+路径的输出)
- UVA 624 CD(01背包/记录路径)
- UVA - 624 - CD(动态规划,背包,打印路径)
- UVa 624 CD(01背包并打印)
- UVA 624 CD(01背包+记录路径)
- uva 624 CD 01背包打印路径
- UVA - 624 CD(01背包+路径纪录)
- UVA 624 CD ( 01背包 + 逆推路径)