问题 I: 数字分组2

时间限制: 1 Sec  内存限制: 128 MB
[命题人:admin]

题目描述

已知一堆魔法石的重量,问如何分成两堆,使得它们质量和之差最大,但不能大于(可以等于)这些数中的最大数。

输入

第一行一个数n(n ≤20)。

接下来n行,每行一个正整数(每个数≤100000)。

输出

一个整数表示两组数字和的最大差。

样例输入 Copy

5
2 4 5 8 10

样例输出 Copy

9
解析
问题说把魔法石分成两堆,使其质量之差最大,但不能大于可以等于这些数的最大值。
假设他们的差值 最大为这些数的最大值(max1),他们的和为sum,所以可以其中一堆的值为(max1+sum)/2;
该问题就转 化成了把问题转化为从n个物品中取若干个,使其重量不超过(max1+sum)/2,且重量达到最大
x-y=max1
x+y=sum
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<map>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int maxn=1e5;
int a[maxn],dp[maxn];
int n;
int sum;
int max1=;
int main(){
cin>>n;
for(int i=;i<=n;i++){
cin>>a[i];
sum+=a[i];
max1=max(max1,a[i]);
}
int t=(max1+sum)/;
for(int i=;i<=n;i++){
for(int j=t;j>=a[i];j--){
dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
}
}
printf("%d\n",abs(sum-dp[t]-dp[t]));
}

 

问题 I: 数字分组2的更多相关文章

  1. 【动态规划】数字分组I

    [动态规划]数字分组I 时间限制: 1 Sec  内存限制: 64 MB提交: 10  解决: 6[提交][状态][讨论版] 题目描述 给出一堆魔法石的重量,问如何分成两堆,使得它们质量和之差最小,求 ...

  2. C#:String.Format数字格式化输出 {0:N2} {0:D2} {0:C2}等等

    int a = 12345678; //格式为sring输出//   Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); / ...

  3. C#:String.Format数字格式化输出

    int a = 12345678; //格式为sring输出//   Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);// ...

  4. C#数字格式化

    格式规范的完整形式:{index [,width][:formatstring]} index是此格式程序引用的格式字符串之后的参数,从零开始计数:width(可选) 是要设置格式的字段的宽度,wid ...

  5. .net String.Format数字格式化输出

    内容转载自:http://www.cnblogs.com/lqb/archive/2008/08/04/1259498.html 前面内容这个做的总结的很全,今后有新增的我继续往后补充.请留意我增加的 ...

  6. 在jsp页面中实现格式化数字,百分比,货币

    当时的要求是在jsp页面中计算百分比 实现方法 1.引入Jstl的fmt指令 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ...

  7. String.Format数字格式化输出 {0:N2} {0:D2} {0:C2

    //格式为sring输出 //   Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); //   Label2.Text = ...

  8. 【转】C# String.Format数字格式化输出各种转换{0:N2} {0:D2} {0:C2}...

    ; //格式为sring输出 // Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); // Label2.Text = & ...

  9. C# 之 数字格式化

    格式规范的完整形式:{index [,width][:formatstring]} index是此格式程序引用的格式字符串之后的参数,从零开始计数:width(可选) 是要设置格式的字段的宽度,wid ...

随机推荐

  1. 忽略npm install安装失败信息

    在package.json目录下运行npm install命令时会提示某些模块安装失败,如下图所示:   不管你在.npmrc文件中设置了proxy.https-proxy和registry地址,它还 ...

  2. win10系统中按顺序安装jdk、tomcat

    一.首先安装jdk1.8,重点在于配置环境 安装步骤见另一篇软件安装中的博客 配置环境 1.首先要打开系统环境变量配置的页面.具体操作是:桌面上找到“此电脑”,然后右键 “属性”. 然后打开高级系统配 ...

  3. css 字体旋转

    <div v-else> <img src="/img/dashboard/nodata.png"> <div style="color: ...

  4. 【Python】求n!

    阶乘是基斯顿·卡曼(Christian Kramp,1760-1826)于1808年发明的运算符号,是数学术语.一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1 ...

  5. RabbitMQ的五种工作方式详细

    在了解之前得先有个RabbitMQ客户端.官网: https://www.rabbitmq.com/getstarted.html connections:无论生产者还是消费者,都需要与RabbitM ...

  6. java开发就业招聘管理系统 ssh源码

    开发环境:    Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 此项目分为 用户 企业  管理员三种角色 运行效果图

  7. 2019-08-18 纪中NOIP模拟A组

    T1 [JZOJ6309] 完全背包 题目描述

  8. Git分支规范说明

    1.分支类型说明 分支名称 分支描述 唯一 权限管理 release 发布分支,内部分支,当确定需要发布版本时,从develop分支拉出此分支 唯一 最高权限,由版本经理或者团队核心成员组管理 mas ...

  9. 402 WebEx会议教程二 —— 召开会议

    ··· WebEx会议教程二 —— 召开会议 简介:召开一个WebEx会议,并邮件邀请其他人参加会议 1.  安装快捷会议工具,将WebEx按钮集成到Outlook中.    WebEx快捷会议工具- ...

  10. Struts2学习-struts执行过程简述

    1.web.xml <web-app> <filter> <filter-name>struts2</filter-name> <filter-c ...