UVA 624 - CD
来源:互联网 发布:windows怎么ping 编辑:程序博客网 时间:2024/06/03 17:07
这道背包题很基础,要学习一下dp输出,。
代码如下:
#include<stdio.h>
#include<string.h>
#define MAXN 10000
int tap, cdnum, num[25],f[25][MAXN],p[25][MAXN];
void print(int i, int j)
{
if(i == 0)
return;
print(i - 1, p[i][j]);
if(p[i][j] < j)
printf("%d ", num[i]);
}
void solve()
{
memset(p,0,sizeof(p));
memset(f,0,sizeof(f));
for(int i = 1; i <= cdnum; i ++)
for(int j = 0; j <= tap; j ++)
{
f[i][j] = f[i-1][j];
p[i][j] = j;
if(j>=num[i]&&f[i-1][j-num[i]]+num[i] > f[i][j])
{
f[i][j] = f[i-1][j-num[i]]+num[i]; p[i][j] = j-num[i];
}
}
print(cdnum,tap);
printf("sum:%d\n",f[cdnum][tap]);
}
void input()
{
while(scanf("%d%d",&tap, &cdnum) == 2)
{
for(int i = 1; i <= cdnum; i ++)
scanf("%d",&num[i]);
solve();
}
}
int main()
{
input();
return 0;
}
0 0
- uva 624 CD
- UVa 624 - CD
- Uva 624 CD
- UVA 624 CD
- UVa 624 - CD
- UVa 624 - CD
- uva 624 CD
- uva 624 CD
- UVa 624 - CD
- UVa 624 CD
- Uva-624-CD
- CD UVA 624
- UVA 624 CD
- UVA 624 - CD
- UVa:624 CD
- UVa 624: CD
- UVA - 624 CD
- uva 624 cd
- UVA 147 - Dollars
- UVA 357 - Let Me Count The Ways
- nagios搭建
- UVA 562 - Dividing coins
- UVA 348 - Optimal Array Multiplication Sequence
- UVA 624 - CD
- UVA 10130 - SuperSale
- 拟编写《FFmpeg视音频编程指南》不知道有多少人愿意买?
- UVA 531 - Compromise
- g729分析笔记
- UVA 10465 - Homer Simpson
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
- UVA 10285 - Longest Run on a Snowboard
- UVA 437 - The Tower of Babylon