01背包 装满 hdu 1079 The Balance
2014-09-30 14:19
260 查看
#include <algorithm> #include <cstring> #include <cstdio> #define N 20005 using namespace std; int i, j, x, kk, n, m; int t; int Dp ; int a ; int ans ; int main() { while( scanf( "%d", &n )!=-1 ) { int sum=0; for( i=0; i<n; i++ ) { scanf( "%d", &a[i] ); sum+=a[i]; } memset( Dp, -1, sizeof( Dp ) ); Dp[0]=0; for( i=0; i<n; i++) { for( j=sum; j>=a[i]; j--) { if( Dp[j-a[i]]!=-1 ) Dp[j]=max(Dp[j],Dp[j-a[i]]+a[i]); } } for( i=0;i<n;i++ ) { for( j=a[i];j<=sum;j++ ) { if( Dp[j]!=-1 ) Dp[j-a[i]]=j-a[i]; } } int l=0; for( j=1;j<=sum;j++ ) { if( Dp[j]==-1 ) { ans[l]=j; l++; } } printf("%d\n",l); if(l!=0) { for( i=0; i<l-1; i++) printf("%d ",ans[i]); printf("%d\n",ans[i]); } } return 0; }
相关文章推荐
- 01背包中背包装满和不装满
- 01背包中是否背包装满问题
- DP背包问题小结(01背包,完全背包,需恰好装满或不需,一维DP、二维DP)
- soj 2930 积木城堡(恰好装满的01背包 + 枚举)
- 01背包,恰好装满(劲歌金曲,uva 12563)
- soj 3172 Fisherman (01背包的装满)
- 01背包中是否背包装满问题
- 知识点:01背包(多种姿势:二维实现+一维实现+滚动数组实现+背包装满+输出最优方案)
- 01 背包找装满方案数 洛谷 p1164 小a点菜
- 背包之01背包、完全背包、多重背包详解
- 01背包变形 HDU 3496
- 背包之01背包、完全背包、多重背包详解
- POJ 3624 01背包入门题目
- 高数Umaru系列(9)——哈士奇(01背包,经典练习)
- 2017 Multi-University Training Contest - Team 5 1008 【思维 + 01背包思想】
- 01背包——DP
- hdu 1881 毕业bg (01背包变形)浙大计算机研究生复试上机考试-2008年
- poj 3093 01背包
- 01背包问题优化
- 01背包,完全背包,多重背包