nyoj 456
2016-04-30 19:28
375 查看
点击打开 题目 链接
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int dp[100005], v[1005];///dp=v*100 int main() { int n, m, i, j, sum, s; scanf("%d", &m); while(m--) { scanf("%d", &n); memset(dp, 0, sizeof(dp)); sum = 0; for(i = 0 ; i <n ; i++) { scanf("%d", &v[i]); sum += v[i]; } s = sum/2;///感觉有点儿分界线的意思,中间数的分界线 for(i = 0 ; i < n ; i++) for(j = s ; j >=v[i] ; j--) { dp[j] = max(dp[j], dp[j-v[i]]+v[i]); } printf("%d\n", sum-2*dp[s]); } return 0; }
相关文章推荐
- 现在淘宝客好做吗?
- 提示库出错可用下面这个代码
- Caffe学习系列(2):数据层及参数
- 关于VB6.0的Microsoft windows common control 6.0 对象库未注册问题
- 342. Power of Four
- SAP中销售SD模块中基础知识
- Leetcode - Majority Element
- 《More Effective C++》读书笔记-异常
- 简单的makefile
- 集合框架Set接口之hashset
- DestoryChildren
- AndroidApp 设计小结
- Java——异常处理
- CSAPP第二次实验 bomb二进制炸弹的破解
- 习题9-1 UVA 10285 Longest Run on a Snowboard 最长滑雪路径(记忆话搜索)
- 收集雨水问题
- 学习进度条(九)
- ToughRADIUS V2.1.5发布
- C#下JSON字符串的反序列化
- 内存泄漏检查工具