E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
HEOI2014
博弈论手记
博弈论基础练习1.P4101[
HEOI2014
]人人尽说江南好题目描述:略题目分析:由题意可知NNN为初始小石子堆数,且每堆数量为111。在合并时,合并后每堆数量不可超过MMM。
WGF1111
·
2021-03-07 17:35
博弈论
退役前的做题记录1.0
2018-09.18-2018-09.28[BZOJ3613][
HEOI2014
]南园满地堆轻絮可以证明答案就是差最大的逆序对的差的一半。
abcyan1235
·
2020-08-19 08:47
bzoj 3613 //3613: [
Heoi2014
]南园满地堆轻絮 逆序对/二分
bzoj3613//3613:[
Heoi2014
]南园满地堆轻絮//在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?
mrcrack
·
2020-08-18 00:09
跟着大佬学算法
退役前的最后的做题记录upd:2019.04.04
[
HEOI2014
]南园满地堆轻絮答案一定是\(\lceil\frac{max_{1\leix+mid\)时不合法。然后答案就是最开始的东西了。
weixin_34379433
·
2020-08-13 21:37
Luogu P4105 [
HEOI2014
]南园满地堆轻絮
最小化最大值,一眼就能看出来要二分。我们先通过题目中花里胡哨的方法构造出数据,然后因为题目中修改次数无限,随意修改,我们只要求修改差值的最大值,也就是说我们只需要维护最大值即可。我们只要找到差值最大的逆序对,答案就是最大的逆序对的一半。因为作为逆序对,前面的大于后面,差值最大的两个最终必须都要相等(因为要求最后的序列非严格单调递增,可以相等),那么我们不论是高的降低,还是低的增加,需要改的都是这个
繁凡さん
·
2020-08-11 00:52
#
二分法
三分法
【死亡思维题】
Bzoj P3613 [
Heoi2014
]南园满地堆轻絮___贪心
题目大意:一个有nnn个正整数的数列A[1]…A[n]A[1]…A[n]A[1]…A[n],目标是求另一个正整数数列B[1]…B[n]B[1]…B[n]B[1]…B[n],使得对于任意的1≤i<n1≤i<n1≤iai,那么我们对于numnumnum所在的位置kkk而言,在[k,i][k,i][k,i]间的数必定都要改成严格不下降的序列,那么此时改成(num+ai)/2(num+a_i)
disPlayLzy_
·
2019-04-07 20:36
暴力/枚举/模拟
C++
贪心
【BZOJ】3613: [
Heoi2014
]南园满地堆轻絮-贪心
传送门:bzoj3613南园满地堆轻絮,愁闻一霎清明雨。雨后却斜阳,杏花零落香。无言匀睡脸,枕上屏山掩。时节欲黄昏,无憀独倚门。题解若i<ji<jiaj,则两者一起取⌊ai+aj2⌋\lfloor\frac{a_i+a_j}{2}\rfloor⌊2ai+aj⌋时有最优答案⌈ai−aj2⌉\lceil\frac{a_i-a_j}{2}\rceil⌈2ai−aj⌉。于是贪心:ans=max
ccosi
·
2019-03-02 11:58
贪心
【BZOJ】3611: [
Heoi2014
]大工程-虚树&树形DP
传送门:bzoj3611题解C(k,2)条边就是把所有点之间都连起来…然后询问所有两两之间边的最大值和最小值。(读错题意了蜜汁尴尬)注意询问节点总数不超过2n,当然是建虚树,然后在虚树上dp啦。建虚树的方法是这样的,要维护一条最右链(用的链式前向星,当然是最右了(雾))k=rd();for(i=1;i=d[sta[top-1]]){lk(t,sta[top--]);if(sta[top]!=t)s
ccosi
·
2018-06-24 21:53
树形DP
虚树
bzoj 3611 【
heoi2014
】大工程 虚树+树形DP
题意:给定一棵n个节点的树,q组询问,每次询问找m个关键点,求m个关键点两两之间距离的和、距离的最大值和最小值n个点的树,对k个关键进行操作(询问)的一眼过去一般都是虚树题因为原树边权是1,所以虚树上两点之间的边权为abs(d[x]-d[y])(d[i]表示节点i在原树的深度)(具体虚树怎么搞请自行百度...)以下的“树”皆表示虚树,树P还真是有点恶心...我们维护四个数组,分别是:size[x]
Eirlys_North
·
2017-03-30 23:44
树型DP
bzoj
虚树
bzoj 3611: [
Heoi2014
]大工程 (虚树+树形DP)
3611:[
Heoi2014
]大工程TimeLimit:60SecMemoryLimit:512MBSubmit:1218Solved:530[Submit][Status][Discuss]Description
clover_hxy
·
2017-03-12 19:58
动态规划
虚树
[BZOJ3611][
Heoi2014
]大工程(虚树+树形dp)
题目描述传送门题解令size(i)表示i子树里有多少个关键点令sum(i)表示i子树中所有关键点到i的距离和令Max(i)表示i子树中所有关键点到它的最长链,_Max(i)次长链,Min(i)最短链,_Min(i)次短链这些都非常好维护,第二问和第三问也很好计算,用最和次拼一下就行了对于第一问的话,在dp的时候维护一下当前size和sum的乘积就行了将所有的关键点和它们的lca建出一棵虚树,边权为
Clove_unique
·
2017-03-12 12:28
题解
dp
省选
虚树
bzoj 3609: [
Heoi2014
]人人尽说江南好
对于必胜方,游戏的最优策略是每次找最大的两个可以合并的数合并,但是如果出现(m-1) 211……的情况合并m-1和2,这样无论必败方如何操作,这次游戏的总操作次数是一定的,因为这样的终局一定是一些m,然后一堆n%m,或者其他总操作次数和它相等的局面。这个终局的总操作次数相当于比没有m的限制少了这剩下的n/m上取整堆的合并次数,所以操作次数是(n-1)-(ceil(n/m)-1) #inc
heheda_is_an_OIer
·
2016-04-29 08:00
【BZOJ3609】[
Heoi2014
]人人尽说江南好【博弈】【打表找规律】
【题目链接】没有子游戏,所以SG应该是用不上了。然后来愉快的写暴力吧。#include #include #include usingnamespacestd; constintmaxn=1005; intn,m,num[maxn]; inlineboolcheck(){ boolflag=1; for(inti=1;i0&&num[j]>0)||(i==j&&i+j1))) flag=0
BraketBN
·
2016-04-27 09:00
bzoj3611: [
Heoi2014
]大工程
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3611题意:中文题。分析:同消耗战是一类题,询问过多,但是关键节点少,那么我们先建虚树(最大2*max个节点),同消耗战建虚树。然后在树上跑一遍DP即可。O(max*logn)代码:#include #include #include #include #include #include #in
Fsss_7
·
2016-04-11 20:00
BZOJ 3612
HEOI2014
大工程 树链剖分求LCA的优越
虚树神马的网上已经讲了不少了,这里就多提啦,推荐看这个小伙伴的博客本题是一个虚树的裸题,就不提示了。一般来说我不写这种题解烂大街的题目,但这次尝试打破了我以前的一个思维惯性,关于时间复杂度的误区。为什么这题我写树链剖分求LCA呢?因为我算错空间辣-_-#当时我正在算倍增算法的空间,1000000∗20→2∗108然后我就不敢写n∗log(n)的倍增啦QAQ不要紧,反正链剖空间低,我只有委曲求全的写
Fuxey
·
2016-03-27 17:54
树链剖分
BZOJ 3612
HEOI2014
大工程 树链剖分求LCA的优越
虚树神马的网上已经讲了不少了,这里就多提啦,推荐看这个小伙伴的博客本题是一个虚树的裸题,就不提示了。一般来说我不写这种题解烂大街的题目,但这次尝试打破了我以前的一个思维惯性,关于时间复杂度的误区。为什么这题我写树链剖分求LCA呢?因为我算错空间辣-_-#当时我正在算倍增算法的空间,1000000∗20→2∗108然后我就不敢写n∗log(n)的倍增啦QAQ不要紧,反正链剖空间低,我只有委曲求全的写
Fuxey
·
2016-03-27 17:00
树链剖分
虚树
bzoj 3611: [
Heoi2014
]大工程
1#include 2#include 3#include 4#include 5#defineM2000009 6#defineinf0x7ffffff 7#definelllonglong 8usingnamespacestd; 9intn,head[M],next[M],u[M],cnt,head1[M],next1[M],u1[M],fa[M][21],deep[M],m,
xiyuedong
·
2016-03-23 05:00
3611: [
Heoi2014
]大工程|树形DP|虚树
构建出虚树然后DP统计答案自己写的DP太傻QAQ,各种WA膜了一发PoPoQQQ大爷的DP方法mxdis,mndis分别表示到当前点最近和最远的被选出来的点的距离mx,mn分别表示在以当前点为根的情况下距离最远的两点的距离和距离最近的两点的距离。sum表示在以当前点为根的子树中,所有关键的到当前点的距离之和c数组表示以当前点为根的子树中,关键点的个数然后我用了个时间戳来标记关键点#include
ws_yzy
·
2016-03-18 18:00
树形DP
【bzoj3613】[
Heoi2014
]南园满地堆轻絮 二分答案
二分答案后,贪心做。每个数对应一个区间,每次取能取到的最小的数,如果取不到了,就无解。#include #include #include #include #include #include #definemaxn50001000 usingnamespacestd; inta[maxn]; intn,mod,ans; longlongsa,sb,sc,sd; longlongF(long
u012288458
·
2016-02-24 13:00
[bzoj3611][
Heoi2014
]大工程
看题目感觉应该就是传说中的虚树?然后跑去学了一发。。。自己YY了一下然后挂飞。。于是就只好抄模板了T_T建完虚树就是个树形dp。。。对于询问总和:每条边对答案的贡献是边权*一端的节点数*另一端的节点数。(这里的节点不包括建虚树时添上去的点)对于询问最小值最大值,每次计算出经过这个节点的最长||最短路径长度就好了。。大概这种题条件都有一个sigma(K)_ 2#include 3#include
czllgzmzl
·
2016-02-12 20:00
3611: [
Heoi2014
]大工程
继续水虚树。这题60S的时限把我吓坏了。然而3000多MS就A了,有幸到了rank4,nice!。一开始还在纠结是点分治还是DP,后来想想既然能DP何不DP呢。于是就DP了。显然要维护三个量。ans2和ans3都好说,参照树上直径的求法就好了,次长+最长+1变形一下。ans1的话比较麻烦,手画个图看看,目测是当前子树的边与其他子树的边对应,然后其他子树的边再和当前子树的算一下,动手推一推就好了。然
nlj1999
·
2015-12-28 21:00
bzoj3611: [
Heoi2014
]大工程
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3611思路:构建虚树DP首先这种题有一个特征,就是所有询问的总点数是O(n)的那么就可以考虑对每次询问建一棵虚树,再在虚树上DP。那么我们对于每次询问,就不一定要把整棵树建出来,而是只要管一部分点即可比如u,v两点之间没有其他询问点,那么我们就可以把uv直接连起来,中间的点是什么我们并不关心。
thy_asdf
·
2015-12-23 19:00
树形DP
虚树
BZOJ 3609 [
Heoi2014
]人人尽说江南好 数学
题意:略《真·每年的题只会一题跑系列2.0》解析:显然可以知道能合并多少次…..求出次数之后判断奇偶即可。代码:#include #include #include #include usingnamespacestd; intn,m; intmain() { intt; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); intccc=n-n/m*
wzq_QwQ
·
2015-09-30 20:00
namespace
数学
合并
360
人人
【BZOJ 3613】 [
Heoi2014
]南园满地堆轻絮
3613:[
Heoi2014
]南园满地堆轻絮TimeLimit:50SecMemoryLimit:256MBSubmit:167Solved:109[Submit][Status][Discuss]Description
Regina8023
·
2015-05-07 08:00
判断
二分
OI
bzoj
BZOJ 3614
Heoi2014
逻辑翻译 分治 = =
HEOI2014
全AC达成?
题目大意:给定一个含有n个变量的2^n项的多项式,将每个变量分别选-1和1代入求值,求多项式的各项系数《论一道题究竟如何出才能同时卡时间卡内存卡精度卡输入卡输出卡评测》很久之前盯着这道题看了很长时间……直到今天我才发现这题原来是道傻逼题。。。我们用三个变量举例假设f(x)=a0x1x2x3+a1x1x2+a2x1x3+a3x2x3+a4x1+a5x2+a6x3+a7那么我们把含有x1的项提出来得到
PoPoQQQ
·
2015-03-31 18:00
分治
bzoj
BZOJ3614
【BZOJ3613】【
Heoi2014
】南园满地堆轻絮 构造
广告:#include intmain() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44096565"); }题解:我们把所有逆序对点都搞到同一高度。然后发现答案是距离最远的逆序对搞到一起的代价。代码:#include #include #include #include #defin
Vmurder
·
2015-03-06 10:00
构造
BZOJ3613
南园满地堆轻絮
HEOI2014
BZOJ 3613
Heoi2014
南园满地堆轻絮 二分答案/线性做法
题目大意:给定一个序列a,求一个单调不减的序列b,使max{|ai-bi|}最小逗比题。。。。。二分答案做法:每次验证时从右向左扫描如果当前数字小于等于右侧的数字,就把这个数字向上调整到极限(到达右侧的数字或调整的值到达上界)如果当前数字大于右侧的数字,就把这个数字向下调整到与右侧数字相等无法如此做则返回false#include #include #include #include #defin
PoPoQQQ
·
2015-03-05 15:00
bzoj
二分答案
BZOJ3613
【BZOJ3611】【
HEOI2014
】大工程 LCA单调性 构造虚树
题解:虚树部分参见上一篇博客然后DP部分随便乱搞就过了。代码:#include #include #include #include #defineN1001000 #defineLOGN22 #defineinf0x3f3f3f3f #defineINF0x3f3f3f3f3f3f3f3fLL usingnamespacestd; structKSD { intv,next; }e[N=0;i-
Vmurder
·
2015-01-09 17:00
BZOJ3611
构建虚树
HEOI2014
大工程
LCA单调性
【BZOJ3612】【
HEOI2014
】平衡 整数划分、
题意:有一个杠杆,半长为n,在(2n+1)个整数坐标各有一个质量相同的砝码。现在给出n,然后再给出要取走的砝码个数,问使得最终杠杆依然平衡的最终方案数是多少。(文末会给出原题帽)分析:数据范围不大,我们可以写整数划分。f[i][j]表示将i划分成j个互不相同的正整数,且最大不超过n的划分方案数。这里说一下这道题的整数划分。我们不妨先来反向思考一下。-------------------------
Vmurder
·
2015-01-09 10:00
整数划分
平衡
HEOI2014
BZOJ3612
BZOJ 3612
HEOI2014
平衡 递推
题目大意:给定一个杠杆,一共2n+1个位置,每个上面有一个质点,求拿走k个质点后使杠杆仍然保持平衡的方案数modp的值n #include #include #include #defineM100100 usingnamespacestd; intn,k,p; intf[M][15]; //f[n][m]表示将n划分成m个互不相同且最大不超过k的数的方案数 intmain() { intT,i,
PoPoQQQ
·
2015-01-09 08:00
递推
bzoj
BZOJ3612
BZOJ 3611
HEOI2014
大工程 倍增LCA+单调栈+树形DP
题目大意:给定一棵树,m次询问,每次给出k个关键点,询问这k个点之间的两两距离和、最小距离和最大距离n #include #include #include #defineM1001001 #defineINF0x3f3f3f3f usingnamespacestd; structabcd{ intto,next; }table[M=dpt[y]) x=fa[x][j]; if(x==y)retu
PoPoQQQ
·
2015-01-07 17:00
单调栈
树形DP
bzoj
倍增LCA
BZOJ3611
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他