2064: 分裂 - BZOJ
Description
背景: 和久必分,分久必和。。。 题目描述: 中国历史上上分分和和次数非常多。。通读中国历史的WJMZBMR表示毫无压力。 同时经常搞OI的他把这个变成了一个数学模型。 假设中国的国土总和是不变的。 每个国家都可以用他的国土面积代替, 又两种可能,一种是两个国家合并为1个,那么新国家的面积为两者之和。 一种是一个国家分裂为2个,那么2个新国家的面积之和为原国家的面积。 WJMZBMR现在知道了很遥远的过去中国的状态,又知道了中国现在的状态,想知道至少要几次操作(分裂和合并各算一次操作),能让中国从当时状态到达现在的状态。
Input
第一行一个数n1,表示当时的块数,接下来n1个数分别表示各块的面积。 第二行一个数n2,表示现在的块,接下来n2个数分别表示各块的面积。
Output
一行一个数表示最小次数。
Sample Input
1 6
3 1 2 3
Sample Output
2
数据范围:
对于100%的数据,n1,n2<=10,每个数<=50
对于30%的数据,n1,n2<=6,
代码很短,但是我没有想到这个思路
讲出来其实很容易理解,我们把两边都分成k堆,两边对应的一堆和相等,这样我们就只需要做n1+n2-k*2次操作就可以了
状压dp即可,f[s]表示左边取某些块,右边取某些块,中间相等次数最多是多少
1 var 2 sum,f:array[0..1 shl 21]of longint; 3 n1,n2,n:longint; 4 5 procedure init; 6 var 7 i:longint; 8 begin 9 read(n1); 10 for i:=1 to n1 do 11 read(sum[1<<i>>1]); 12 read(n2); 13 for i:=n1+1 to n1+n2 do 14 begin 15 read(sum[1<<i>>1]); 16 sum[1<<i>>1]:=-sum[1<<i>>1]; 17 end; 18 n:=n1+n2; 19 end; 20 21 procedure up(var x:longint;y:longint); 22 begin 23 if x<y then x:=y; 24 end; 25 26 procedure dp; 27 var 28 i,j,k:longint; 29 begin 30 for i:=1 to 1<<n-1 do 31 begin 32 k:=i and (-i); 33 sum[i]:=sum[i-k]+sum[k]; 34 for j:=1 to n do 35 if i and (1<<j>>1)>0 then up(f[i],f[i-1<<j>>1]); 36 if sum[i]=0 then inc(f[i]); 37 end; 38 write(n-f[1<<n-1]<<1); 39 end; 40 41 begin 42 init; 43 dp; 44 end.
View Code
转载于:https://www.cnblogs.com/Randolph87/p/3757750.html
2064: 分裂 - BZOJ相关推荐
- Bzoj 2064 分裂 题解
2064: 分裂 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 570 Solved: 350 [Submit][Status][Discuss] ...
- [BZOJ] 2064: 分裂
注意到\(n\)很小,应该是状压DP 记原集合为\(S\),目标集合为\(T\),如果我们能把\(S\)分成\(x\)个不相交的非空子集,且这\(x\)个子集能和\(T\)中的一些不相交非空子集的和相 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 分裂游戏(bzoj 1188)
Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏. 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆,两个人轮流取豆子 ...
- BZOJ 1188: [HNOI2007]分裂游戏(multi-nim)
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1386 Solved: 840 [Submit][Status][Discuss] Descrip ...
- BZOJ 2135 刷题计划(贪心,求导,二分)【BZOJ 修复工程】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2135 是 hydro 的 BZOJ ...
- BZOJ 3731: Gty的超级妹子树
Description 我曾在青山之中遇过你, 新竹做杖,鬓插紫茱萸. 跣足踏过无边丝雨, 又拾起燕川雪片片落如席-- Gty神(xian)犇(chong)从来不缺妹子-- 他又来到了一棵妹子树下,发 ...
- 【BZOJ1188】分裂游戏(博弈论)
[BZOJ1188]分裂游戏(博弈论) 题面 BZOJ 洛谷 题解 这道题目比较神仙. 首先观察结束状态,即\(P\)状态,此时必定是所有的豆子都在最后一个瓶子中. 发现每次的转移一定是拿出一棵豆子, ...
- BZOJ.1558.[JSOI2009]等差数列(线段树 差分)
BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...
最新文章
- MATLAB实战系列(十六)-2021年大学生数学建模美赛竞赛赛题及问题解析
- MySQL为表的指定字段添加数据
- 线性代数---矩阵的各种问题求解方法
- 百度seo排名规则_SEO:百度搜索引擎排名规则都有哪些?
- Qt中文本编辑器实现语法高亮功能(Qscitinlla)
- ubuntu修改服务器端,修改ubuntu 服务器配置
- ld cannot find an existing library
- Jquery中BlockUI的遮罩效果详解
- dcdc转换器计算机显示,DC-DC转换器的问题
- Linux下压缩文件夹
- java 生成word 分页_Java 插入分页符和分节符到Word文档
- Python库——PyPDF2介绍
- 12月2日科技资讯|微信回应发原图泄露位置信息;Linux Kernel 5.4.1 发布
- 金蝶k3单据编码规则_金蝶K3财务操作手册
- python案例2-简易网吧系统
- 分布式技术一周技术动态 2016-10-09
- CentOS7安装OpenStack(Rocky版)-02.安装Keyston认证服务组件(控制节点)
- 数学家西蒙斯:华尔街最赚钱的基金经理
- Description 一个笼子里关了若干鸡和兔子,鸡有2只脚,兔子有4只脚,没有例外。已知笼子里脚的 总数a,问笼子里至少有多少只动物,至多有多少只动物? Input 第一行是测试数据的组数n,后面
- 22本JavaScript高清电子书下载
热门文章
- 程序员都用什么来记录知识_1年前的小五都用 Python 来做什么?
- 力扣 数组中的第K个最大元素
- mcq 队列_人工智能| AI解决问题| 才能问题解答(MCQ)| 套装1
- javascript写入_如何在JavaScript中写入HTML元素?
- AAC ADTS格式分析
- hsql mybatis 表不存在_单元测试MyBatis与HSQL而不是Oracle
- python datatime 平均值_python求数据的时间平均
- hdu 5783——Divide the Sequence
- Qt eventFilter实现信号与槽
- android文本复制自定义剪切板,android 剪切板-文本复制、粘贴