题目

描述

今天是阴历七月初五,首师大附中信息社团队员GDC的生日。GDC正在和SCX、WXY在首师大附中集训。他想给这两位兄弟买点什么庆祝生日,经过调查,GDC发现SCX和WXY都很喜欢吃西瓜,而且一吃就是一堆的那种,GDC立刻下定决心买了一堆西瓜。当他准备把西瓜送给SCX和WXY的时候,遇到了一个难题,WXY和SCX不在一块住,只能把西瓜分成两堆给他们,为了对每个人都公平,他想让两堆的重量之差最小。每个西瓜的重量已知,你能帮帮他么?

输入

输入多组测试数据(<=1500)。数据以EOF结尾,第一行输入西瓜数量N (1 ≤ N ≤ 20)

第二行有N个数,W1, …, Wn (1 ≤ Wi ≤ 10000)分别代表每个西瓜的重量。

输出

输出分成两堆后的质量差。

输入示例

5
5 8 13 27 14

输出示例

3

思路

要使两边之差较小,也就是要尽量让两边的数挨近sum/2(sum为总量)就可以了。只需做一个以sum/2为容量的背包即可。另一边的重量是sum-dp[sum/2]。

那么,最终的差就是:sum-dp[sum/2]-(dp[sum/2])=sum-dp[sum/2]*2;

DFS做法

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#define max(a,b) a>b?a:b
using namespace std;
int n,a[21],ans,sum[21],V;
void dfs(int i,int cnt){
if(i==0){
ans=max(ans,cnt);
return ;
}
if(ans==V||cnt+sum[i]<=ans)return ;
if(cnt+a[i]<=V)dfs(i-1,cnt+a[i]);
dfs(i-1,cnt);
}
int main(){
while(cin>>n&&n){
ans=0;
for(int i=1;i<=n;i++)cin>>a[i],sum[i]=sum[i-1]+a[i];
V=sum[n]/2;
dfs(n,0);
cout << (sum[n]-2*ans) << endl;
}
return 0;
}

DP做法

#include<iostream>
#include<cstring>
using namespace std;
int n,w[21],dp[200001],v,sum=0;
int max(int x,int y){return x>y?x:y;}
int main(){
while(cin>>n){
sum=0;
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)cin>>w[i],sum+=w[i];
v=sum/2;
for(int i=1;i<=n;i++){
for(int j=sum;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+w[i]);
}
}
cout << (sum-dp[v]*2) << endl;
}
return 0;
}

TMOOC-1692-分西瓜的更多相关文章

  1. 机器学习 demo分西瓜

    周老师的书,对神经网络写了一个小的Demo 是最简单的神经网络,只有一层的隐藏层. 这次练习依旧是对西瓜的好坏进行预测. 主要分了以下几个步骤 1.数据预处理 对西瓜的不同特性进行数学编码表示(0~1 ...

  2. 分西瓜(DFS)

    描述今天是阴历七月初五,acm队员zb的生日.zb正在和C小加.never在武汉集训.他想给这两位兄弟买点什么庆祝生日,经过调查,zb发现C小加和never都很喜欢吃西瓜,而且一吃就是一堆的那种,zb ...

  3. NY 325 zb的生日

    假设所有西瓜重 Asum,所求的是用 Asum / 2 的背包装,最多装下多少. 刚开始用贪心作的,WA.后来用01背包,结果TLE,数据太大.原来用的是深搜! dfs(int sum, int i) ...

  4. Codeforces 4A-Watermelon(意甲冠军)

    A. Watermelon time limit per test 1 second memory limit per test 64 megabytes input standard input o ...

  5. [luogu P3787][新创无际夏日公开赛] 冰精冻西瓜 [树状数组][dfs序]

    题目背景 盛夏,冰之妖精琪露诺发现了一大片西瓜地,终于可以吃到美味的冻西瓜啦. 题目描述 琪露诺是拥有操纵冷气程度的能力的妖精,一天她发现了一片西瓜地.这里有n个西瓜,由n-1条西瓜蔓连接,形成一个有 ...

  6. 爬虫技巧-西瓜视频MP4地址获取

    记录一下西瓜视频MP4地址的获取步骤 目标: 指定西瓜视频地址,如 https://www.ixigua.com/a6562763969642103303/#mid=6602323830,获取其视频M ...

  7. ny325 zb的生日,ny456邮票分你一半

    zb的生日 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 今天是阴历七月初五,acm队员zb的生日.zb正在和C小加.never在武汉集训.他想给这两位兄弟买点什么庆祝 ...

  8. 今日头条、抖音、西瓜、火山、微视、陌陌等自媒体平台小视频批量下载工具v1.1.0(视频搬运福利)

    前言 目前各大自媒体平台爆火,网络流量暴涨,各大自媒体平台的小视频为广大个广告主带来了如泉涌般的的视频流量,更给广大的自媒体小编带来了丰厚的利益回报,想要创做更多的自媒体内容着实不易,下面给广大的小视 ...

  9. 决策树ID3原理及R语言python代码实现(西瓜书)

    决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...

  10. (C++)戳西瓜

    写在前面的话: 请不要吝啬你的点赞!!! 题目描述 有 n 个西瓜,编号为0 到 n-1,每个西瓜上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的西瓜.每当你戳破一个西瓜 i ...

随机推荐

  1. 僵尸进程与SIGCHLD信号

    什么是僵尸进程? 首先内核会释放终止进程(调用了exit系统调用)所使用的所有存储区,关闭所有打开的文件等,但内核为每一个终止子进程保存了一定量的信息.这些信息至少包括进程ID,进程的终止状态,以及该 ...

  2. python + appium 执行报错整理

    1.driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys("adidas" ...

  3. java多线程---张孝祥

    1.java web 中,一次http请求是一个任务,因为服务器里面有线程池的,存在一个线程处理多个请求任务. 2.在java中,vector,hashtable,concurrentHashMap是 ...

  4. Windows10系统下使用Docker搭建ClickHouse开发环境

    前提 随着现在业务开展,几个业务系统的数据量开始急剧膨胀.之前使用了关系型数据库MySQL进行了一次数据仓库的建模,发现了数据量上来后,大量的JOIN操作在提高了云MySQL的配置后依然有点吃不消,加 ...

  5. MySQL获取webshell的几种方式

    select ... into outfile 需要满足的条件 对web目录有写权限 GPC关闭(GPC:是否对单引号转义) 有绝对路径(读文件可以不用,写文件需要) 没有配置secure-file- ...

  6. pdfFactory如何设置限制打印和浏览文档权限

    当我们进行私密文件的分享时,除了要设置密码保护文件内容外,还要注意设置打印限制,防止他人利用打印的方式,进行纸质文件的传播. 在使用pdfFactory安全策略时,我们可以通过设定禁止打印的方式,完全 ...

  7. 系统兼容软件CrossOver和虚拟机软件,哪个好用?

    想要在Mac上运行Windows软件的方法有很多种,比较常见的有安装双系统以及虚拟机.但是安装双系统会导致一个很大的问题,就是占用了过多的硬盘空间,这样一来会导致可使用的空间减少. 目前来说,大家都不 ...

  8. centons 7 安装mysql

    1      CentOS 7 yum安装mysql 1.1    Yum 安装mysql CentOS用yum安装相对省事,省去很多配置环节 安装mysql 源 yum localinstall h ...

  9. php form表单提交时,action url中参数无效的解决方法

    表单提交时get方式的一个错误 <form class="form-inline pull-right" method="get" action=&quo ...

  10. laradock使用问题汇总

    laradock简介 一套完整的基于Docker的PHP开发环境.包含了预先打包的Docker镜像,所有预先配置都是为了提供一个完美的PHP开发环境(中文文档).PS: 不是最新版的 windows1 ...