uva 624 CD 01背包状态压缩记路径
2013-02-28 17:04
495 查看
uva 624 cd
要把cd上的音乐导到磁带里,要求尽量使磁带剩余的空间小并按顺序打印出每次磁带中的每个音轨长度。tracks不超过20,且按顺序输出,状态压缩记录路径。
要把cd上的音乐导到磁带里,要求尽量使磁带剩余的空间小并按顺序打印出每次磁带中的每个音轨长度。tracks不超过20,且按顺序输出,状态压缩记录路径。
#include<stdio.h> #include<string.h> #define maxn 10010 int n,w[maxn],m; //花费都是1 int dp[maxn]; int state[maxn]; int main() { int i,j,k,l,m; while(~scanf("%d",&n)) { scanf("%d",&m); memset(dp,0,sizeof(dp)); memset(state,0,sizeof(state)); int r; for(i=0;i<m;i++) { scanf("%d",&w[i]); r=1<<i; for(j=n;j>=w[i];j--) { if(dp[ j-w[i] ]+w[i] >dp[j]) { dp[j]=dp[ j-w[i] ]+w[i]; state[j]=r|state[j-w[i]]; //状态也更新 } } } for(i=0;i<m;i++) { r=1<<i; if(r&state ) printf("%d ",w[i]); } printf("sum:%d\n",dp ); } return 0; }
相关文章推荐
- UVA 题目624 CD(01背包输出路径啊)
- UVA 624 - CD (01背包打印路径)
- uva 624 CD 01背包打印路径
- UVA 624 CD(01背包,要记录路径)
- uva 624 CD(01背包 路径记录)
- UVa 624 CD (01背包路径输出)
- uva 624 CD 01背包打印路径
- uva 624 (01背包打印路径)
- uva 624 CD (0-1背包打印路径)
- UVA 624(01背包记录路径)
- uva624 CD(dp 0-1 背包 打印路径)
- UVA - 624 - CD(动态规划,背包,打印路径)
- UVA10817 Headmaster's Headache 状态压缩的01背包
- UVA 624 CD(DP:01背包)
- 01背包状态压缩和记录路径
- UVA 624 - CD (01背包 + 打印物品)
- UVA 624 CD (01 背包)
- UVA624(01背包 + 路径打印)
- 【uva】624 CD【背包记录路径】
- UVA 624 CD(01背包+输出方案)