51nod 1007 正整数分组 背包思路题
2017-09-26 15:59
351 查看
思路:判断这n个数能组成的数有哪些, 枚举差值,维护最小值。
看到sum的范围小于10000就得想到背包了。。。
看到sum的范围小于10000就得想到背包了。。。
#include <bits/stdc++.h> using namespace std; const int inf =0x3f3f3f3f; typedef long long LL; const int MAXN = 10005; const int mod = 1e9+7; int a[105]; int dp[MAXN]; int main() { int n; while(~scanf("%d", &n)) { int ans=inf, sum=0; for(int i=1; i<=n; ++i) { scanf("%d", &a[i]); sum+=a[i]; } memset(dp, 0, sizeof(dp)); dp[0]=1; for(int i=1;i<=n;++i) for(int j=sum;j>=a[i];--j) dp[j]=max(dp[j], dp[j-a[i]]); for(int i=1;i<=sum/2;++i) if(dp[i]) ans=min(ans, sum-i-i); printf("%d\n", ans); } return 0; }
相关文章推荐
- 51nod 1007 正整数分组 (类01背包问题)
- 51nod 1007 正整数分组(背包/dp)
- 51nod 1007 正整数分组 01背包
- 51nod 1007 正整数分组 01背包
- 51Nod 1007 正整数分组(01背包的变形)
- 51nod 1007 正整数分组(背包)
- 51nod 1007 正整数分组(类背包)
- 51Nod 1007 正整数分组 0-1背包
- 51nod 1007 正整数分组 分组问题转换为背包问题
- [51nod] 1007 正整数分组 dp
- 【51Nod】1007 - 正整数分组(01背包)
- 正整数分组 51Nod - 1007
- 51nod 1007 正整数分组【01背包】
- 51nod 正整数分组 01背包
- 51Nod 1007 正整数分组 01背包
- 51nod 1007 正整数分组(dp)
- 51 NOD 1007 正整数分组(0-1背包)
- 51nod 1007 正整数分组(01背包)
- 51nod 1007 正整数分组(平分) 01背包
- 51Nod-正整数分组(01背包变形)