51Nod 1007 正整数分组(01背包)
第1行:一个数N,N为正整数的数量。 第2 - N+1行,N个正整数。 (N <= 100, 所有正整数的和 <= 10000)
输出这个最小差
5 1 2 3 4 5
1
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <stack> #include <cstdlib> #include <iomanip> #include <cmath> #include <cassert> #include <ctime> #include <map> #include <set> using namespace std; #pragma comment(linker, "/stck:1024000000,1024000000") #define lowbit(x) (x&(-x)) #define max(x,y) (x>=y?x:y) #define min(x,y) (x<=y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.1415926535897932384626433832 #define ios() ios::sync_with_stdio(true) #define INF 0x3f3f3f3f #define mem(a) ((a,0,sizeof(a))) typedef long long ll; int dp[10006],a[106],n; int ans=0,pos; int main() {scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);ans+=a[i];}memset(dp,0,sizeof(dp));pos=ans/2;for(int i=0;i<n;i++){for(int j=pos;j>=a[i];j--)dp[j]=max(dp[j],dp[j-a[i]]+a[i]);}int cnt=0;for(int i=0;i<=pos;i++)cnt=max(cnt,dp[i]);//printf("%d\n",cnt);printf("%d\n",abs(ans-cnt-cnt));return 0; }
转载于:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/8949322.html
51Nod 1007 正整数分组(01背包)相关推荐
- 51Nod 1007 正整数分组 | DP (01背包)
Input示例 5 1 2 3 4 5 Output示例 1 分析:2组的差最小,那么每一组都要接近sum/2,这样就转化成了普通的0 - 1背包了 #include <bits/stdc++. ...
- 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 2072 装箱问题 背包问题 01 背包 DP 动态规划
有一个箱子容量为 V(正整数,0<=V<=20000),同时有 n 个物品(0<n<=30),每个物品有一个体积(正整数). 现在在 n 个物品中,任取若干个装入箱内,使得箱子 ...
- 01背包,完全背包,多重背包,分组背包的使用条件以及代码模板
背包问题算是动态规划中的入门题目了,背包问题有很多种.背包九讲中讲的很清楚,我就不班门弄斧了,针对几种比较常见的背包问题,阐述一下它的使用前提和代码模板. 1.01背包问题 题目 有N 件物品和一个容 ...
- 01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,背包问题求方案数
1 01背包问题 有 NNN 件物品和一个容量是 VVV 的背包.每件物品只能使用 一次. 第 iii 件物品的体积是 viv_ivi,价值是 wiw_iwi.求解将哪些物品装入背包,可使这些物品 ...
- 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包
动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...
- 51Nod 1085 01背包
01背包入门题,刚学完当写模板. 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2--Wn(Wi为整数),与之相对应的价值为P1,P2--Pn(Pi为整数).求背包能够容纳的最大价 ...
- 01背包输出路径、完全背包、多重背包
背包问题 一.01 Knapsack(输出路径- >选的物品) 二.完全背包 1.三重循环,极可能TLE,滚动数组优化后j逆向枚举 2.二重,优化消去变量k(没有特别厘清,但可以直接从完全背包角 ...
最新文章
- php虚拟键盘输入,[问题] bash下如何模拟键盘输入
- 处理顶点——使用索引移除冗余顶点
- 基于MFC SDI的图像处理程序(带效果图)
- SQL Server blocking session
- HDU 5691 Sitting in Line 状压dp
- JAVA入门级教学之(方法-题-3)
- Java集合系列:Vector解析
- ConcurrentHashMap深度分析(JDK 1.8版本)
- lvs基本概念、调度方法、ipvsadm命令及nat模型示例
- String课后作业
- 如何做一个让开发人员看得起的软件测试人员
- sql中判断日期大小_excel中text函数的方法,日期操作、数值转化,条件判断
- Flutter Web 打包并发布到Tomcat服务器上
- 转载:安卓Paint使用讲解
- C语言实现函数确定最大最小值
- chrome —— 登录账号
- Java利用TCP进行文件的传输
- mac通过跳板机对服务器上传下载文件
- 联想计算机机房怎么同传,电脑开机自动进入网络同传
- Android 将签名布局旋转90度,Android 自定义View手写签名