51nod 正整数分组
将一堆正整数分为2组,要求2组的和相差最小。
显然我们可以把所有可能组合成的数求出来。
然后从总和的中间开始往大找,找到了就是其中一个的分组,就可以求出答案了。
#include<cstdio>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;const int MAXN = 11234;
int f[MAXN], w[MAXN], n, sum;int main()
{f[0] = 1;scanf("%d", &n);REP(i, 0, n){scanf("%d", &w[i]);sum += w[i];}REP(i, 0, n)for(int j = sum; j >= w[i]; j--)if(f[j - w[i]])f[j] = 1;for(int ans = (sum + 1) / 2; ans <= sum; ans++)if(f[ans]){printf("%d\n", ans - (sum - ans));break;}return 0;
}
转载于:https://www.cnblogs.com/sugewud/p/9819440.html
51nod 正整数分组相关推荐
- 51 Nod 1007 正整数分组【类01背包】
1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组, ...
- 51nod 1128 正整数分组 V2(二分)
给出一个长度为N的正整数数组,不改变数组元素的顺序,将这N个数分为K组.各组中元素的和分别为S1,S2....Sk.如何分组,使得S1至Sk中的最大值最小? 例如:1 2 3 4 5 6分为3组,{1 ...
- 51Nod 1007 正整数分组(01背包)
将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. Input 第1行:一个数N,N为正整数的数量. ...
- 51Nod 1007 正整数分组 | DP (01背包)
Input示例 5 1 2 3 4 5 Output示例 1 分析:2组的差最小,那么每一组都要接近sum/2,这样就转化成了普通的0 - 1背包了 #include <bits/stdc++. ...
- - 动规讲解基础讲解八——正整数分组
将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 整数个数n<=100,所有整数的和<= ...
- 正整数分组(51Nod-1007)
题目 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 输入 第1行:一个数N,N为正整数的数量. ...
- 51nod-正整数分组问题(基础方程DP-01背包)
正整数分组 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 思路: 这题的实质其实也是0-1背包问 ...
- 动态规划 —— 背包问题
[概述] 背包问题(Knapsack problem)是一种组合优化的NP完全问题. 问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最 ...
- 算法.动态规划 导航/数塔取数字问题
目录 前言 从1+1开始 总结下概念 地图到图 回头看 代码 动态规划经典问题 前言 下面的概念和公式可能会吓到你,看不懂没关系,就是让你恶心的.反正我看着也挺恶心,专业就是让你看不懂,看懂了怎么能叫 ...
最新文章
- win8.1系统用户看过来,0x80004005错误解决大法!
- 创建 Npm+webpack
- api如何使用_什么是API, API是如何工作的?
- 如何使用eclipse创建项目
- 面试题 08.03. Magic Index LCCI 魔术索引
- 李彦宏千字愿景内部信:10次提到“用户”
- 简述linux常见的安全措施,六个常用的Linux安全基本措施
- 图标代码_通过两行代码即可调整苹果电脑 Launchpad 图标大小!
- 设置负数_合同到期提示设置,还在手动计算就out了,学会today函数一键搞定
- Date() 小于等于当天
- MongoDB:MapReduce基础及实例
- 【DS】About Stack
- python | prophet的案例实践:趋势检验、突变点检验等
- jenkins 常用插件
- 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理
- android陀螺仪方向,android – 如何使用罗盘读数和陀螺仪读数获取手机的方位角?...
- Preparing for Exams(割线定理)
- (VQA)LRTA: A Transparent Neural-Symbolic Reasoning Framework with Modular Supervision for Visual Que
- fir.im Weekly - 揭秘直播移动 APP 技术实现
- Android动画制作
热门文章
- Spring_day02--Spring的aop操作
- gmock学习01---Linux配置gmock
- RDIFramework.NET 中多表关联查询分页实例
- App Hub上传应用的状态说明
- 干得累死,并不见得老板就待见你?
- 发现数据对象 -- 数据库开发的关键
- Socket.IO聊天室~简单实用
- 再探ChannelPipeline 的初始化
- Spring 核心容器类BeanDefinitionReader
- BeanDefinitionRegistryPostProcessor​ 的处理源码流程