01-背包---P2663 越越的组队
P2663 越越的组队
题解
是这题数据水还是。。。(数据怎么知道我人数有没有超一半啊)
简化题目:
把n个数分成两组,使得较小的一组在不超过n个数总和一半的情况下和最大
(较小的一组之和肯定不超过总和一半啊)
01背包求解,假设我们的背包里就装较小的一组数,那么每个数字都可以选或不选,但是只能用一次
f[ i ][ j ] 前 i 件物品中分数不超过 j 的最大分数
习惯降一维01背包求解,即 f [ j ] 前 i 件物品中分数不超过 j 的最大分数
代码
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
#include<queue> using namespace std; typedef long long ll; inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''||ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} int n;
int s[];
int f[];
int ave=; int main()
{
n=read();
for(int i=;i<=n;i++) s[i]=read(),ave+=s[i];
ave=ave/;
for(int i=;i<=n;i++)
for(int j=ave;j>=s[i];j--)
f[j]=max(f[j],f[j-s[i]]+s[i]);
printf("%d\n",f[ave]); return ;
}
双倍经验
P2392 kkksc03考前临时抱佛脚
01-背包---P2663 越越的组队的更多相关文章
- 洛谷 P2663 越越的组队
题目描述 班级要组织一场综合能力竞赛,全班同学(N个,N是偶数)分成两队互相竞争.老师找到了越越并给了越越一张全班同学综合能力测试的成绩,要求他从全班同学中选出一半(他自己也可能被选),并要求这些同学 ...
- 洛谷—— P2663 越越的组队
https://www.luogu.org/problem/show?pid=2663 题目描述 班级要组织一场综合能力竞赛,全班同学(N个,N是偶数)分成两队互相竞争.老师找到了越越并给了越越一张全 ...
- 01背包---P2392 kkksc03考前临时抱佛脚
P2392 kkksc03考前临时抱佛脚 题解 01背包,类似于这道题,相似度99.999999%: 01-背包 P2663 越越的组队 一共有4科,每科的时间独立,然后每一科做一遍 P2663越 ...
- Codeforces Round #360 (Div. 2) E. The Values You Can Make 01背包
题目链接: 题目 E. The Values You Can Make time limit per test:2 seconds memory limit per test:256 megabyte ...
- Proud Merchants(01背包)
Proud Merchants Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) To ...
- 51 Nod 1007 正整数分组【类01背包】
1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组, ...
- HDU 2955_Robberies 小偷抢银行【01背包】
<题目链接> 题意: 先是给出几组数据,每组数据第一行是总被抓概率p(最后求得的总概率必须小于他,否则被抓),然后是想抢的银行数n.然后n行,每行分别是该银行能抢的钱数m[i]和被抓的概率 ...
- HDU 2955 Robberies(概率DP,01背包)题解
题意:给出规定的最高被抓概率m,银行数量n,然后给出每个银行被抓概率和钱,问你不超过m最多能拿多少钱 思路:一道好像能直接01背包的题,但是有些不同.按照以往的逻辑,dp[i]都是代表i代价能拿的最高 ...
- Proud Merchants---hdu3466(有01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 与顺序有关的01背包. 如果一个物品p = 5,q = 7,一个物品p = 5,q = 9,如果 ...
随机推荐
- Java流对象:InputStream、OutputStream、Reader、Writer
流对象使用完一般要用close方法关闭.释放资源. InputStream 和OutPutStream 二者都是字节输入和输出的抽象父类,子字节为单位处理数据,每次读取.写入一个字节,适合处理二进制文 ...
- Linux学习笔记(十二)VIM编辑器
一.概述 VI Visual interface 可视化接口,类似于Windows中的记事本 VI->VIM 操作模式: (1)Command mode 命令模式 (2)Insert mode ...
- C 预编译 宏 声明
- socketserver 多进程、多线程应用实例
1.线程池,ThreadingTCPServer #coding=utf-8 ''' 可并发,客户端互不影响,可以保持长连接,客户端发送消息 也不要求加 \r\n ''' #线程池(windows 可 ...
- Unknown initial character set index '255' received from server. Initial client character 解决方法
Unknown initial character set index '255' received from server. Initial client character set can be ...
- Python基础之异常
一.摘要 Python使用被称为异常 的特殊对象来管理程序执行期间发生的错误.每当发生让Python不知所措的错误时,它都会创建一个异常对象.如果你编写了处理该异常的代码,程序将继续运行:如果你未对异 ...
- python 多列表生成新的列表[[a,1],[b,2]]与[[a,b],[1,2]]
(1)将各个列表组合成一个新列表,不做任何数据的改变 示例: test1 = [1,2] test2 = [1,3] test3 = [1,4] 要求生成新的结果:test = [[1,2],[1,3 ...
- unity 拿到管线权限的解决方案
自己建个cmd 传给postprocess layer camera event可以加在这个cmd上控制位置 base pass post process ui都共享这段cmd 在一开始记下back ...
- 纯css实现树形结构
纯css实现属性结构 **css实现属性结构的思路是利用伪类实现树形结构连接线,如果想实现点击展开和收 缩以及复选框效果还得配合js来实现.其实展开和收缩就是一个点击元素其子元素隐藏 和显示的切换.* ...
- 二进制文件方式安装kubernetes集群
所有操作全部用root使用者进行,高可用一般建议大于等于3台的奇数,我们使用3台master来做高可用 练习环境说明: 参考GitHub master: kube-apiserver,kube-con ...