51nod 2级算法题-1007
来源:互联网 发布:网络教育哪个好 编辑:程序博客网 时间:2024/05/19 19:59
1007 正整数分组
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。
Input
第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N <= 100, 所有正整数的和 <= 10000)
Output
输出这个最小差
Input示例
512345
Output示例
1
简单01背包dp dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
#include <iostream>#include <cstring>#include <string>#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#include <queue>#include <stack>using namespace std;const int maxn=10000+100;const int INF=0xfffffff;int a[maxn];int dp[maxn];int main (){ int T; cin>>T; int sum=0; for(int i=1;i<=T;i++){ cin>>a[i]; sum+=a[i]; } sort(a+1,a+T+1); memset(dp,0,sizeof(dp)); for(int i=1;i<=T;i++){ for(int j=sum/2;j>=a[i];j--){ dp[j]=max(dp[j],dp[j-a[i]]+a[i]); } } cout<<abs(sum-2*dp[sum/2])<<endl; return 0;}
0 0
- 51nod 2级算法题-1007
- 51nod 2级算法题-1010
- 51nod 2级算法题-1014
- 51nod 2级算法题-1050
- 51nod 2级算法题-1062
- 51nod 2级算法题-1092
- 51nod 2级算法题-1095
- 51nod 2级算法题-1119
- 51nod 2级算法题-1126
- 51nod 2级算法题-1133
- 51nod 2级算法题-1279
- 51nod 2级算法题-1315
- 51nod 2级算法题-1428
- 【模拟】1432 独木舟【51nod】【难度:2级算法题】
- 51nod 1级算法题
- 51nod 3级算法题-1065
- 51nod 5级算法题
- 【贪心+优先队列】1428 活动安排问题【51nod】【难度:2级算法题】
- KNN算法
- Curator之Master/Leader选举注意事项
- 小米手机加载assests目录下的html文件加载不出来的问题
- 55. Jump Game(Medium)&& 45. Jump Game II(Hard)
- matlab内存不足的情况解决方案
- 51nod 2级算法题-1007
- 《孙子兵法》读后感
- 成为优秀交互设计师的六个必备技能
- JSP(3)使用jsp实现简单的计算器
- 串口NFC模块,轻松实现NFC通信
- 机器学习基石 3-1 Learning with different output space
- TP 3.2.3 权限控制源码
- Storm并行度详解
- Android中获取屏幕宽度(利于屏幕适配)