自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Maxwei_wzj的OI世界

Imagination is more important than knowledge.

  • 博客(16)
  • 收藏
  • 关注

原创 【LuoguP3830】随机树(SHOI2012)-DP+概率期望

测试地址:随机树 做法:本题需要用到DP+概率期望。 对于第一问,考虑令f(n)f(n)f(n)为有nnn个叶子节点的树中,叶子平均深度的期望值,我们考虑找到递推的方法。直接推这个不太好推,我们知道叶子平均深度乘上nnn就是叶子深度和,因为期望的线性性,所以f(n)⋅nf(n)⋅nf(n)\cdot n就是叶子深度和的期望值。这个就比较好推了。对于一棵树,原本的叶子深度和为sss,如果展开一个...

2018-08-31 22:15:05 297

原创 【UOJ#388】配对树(UNR#3)-线段树合并

测试地址:配对树 做法:本题需要用到线段树合并。 这题是NOI2018中间Mychael大佬给的一道神题,现在他已AFO,我也从蒟蒻变成了一个没那么弱的蒟蒻,于是在写这一题的同时,怀念一下和Mychael大佬一起度过的OI时光(虽然只是网上交流2333)。 首先,如果一个区间内点出现了多次,肯定是先自己结合掉2k2k2k次是最优的。那么剩下的一个点集,对于树上的一棵子树,有这样的结论:对于子...

2018-08-30 23:47:36 331

原创 【BZOJ4475】子集选取(JSOI2015)-组合数学

测试地址:子集选取 做法:本题需要用到组合数学。 本题是一个结论题,接下来写一下数学推导。 我们显然可以分开考虑每个元素,最后把方案数乘起来。对于一个元素,它在直角三角形中的存在是要满足一定限制条件的:考虑从直角三角形的左下角引出一条折线,可以向上或向右走,最后折线的左上方就是出现该元素的位置。那么折线的数目就是方案的数目,可以发现折线不管怎么走都是走kkk步,而每一步都可以选择向右或向上,...

2018-08-27 22:03:50 379

原创 【BZOJ4003】城池攻占(JLOI2015)-左偏树

测试地址:城池攻占 做法:本题需要用到左偏树。 如果没有修改操作,题目中的要求很显然可以用树上合并左偏树来在O(nlogn)O(nlog⁡n)O(n\log n)时间内解决。但是有了修改操作我们要怎么办呢? 考虑左偏树的各种操作,它不会像splay一样往上或往下转,而且操作都是自下而上的,因此左偏树有类似线段树的性质,可以在上面像线段树一样处理标记。处理的方法就十分模板了,就不详细说了。这样...

2018-08-27 21:06:29 209

原创 【LuoguP3600】随机数生成器-概率DP+双指针

测试地址:随机数生成器 做法:本题需要用到概率DP+双指针。 考虑离散概率情况下的期望公式: E[ans]=∑xs=1s⋅P(ans=s)E[ans]=∑s=1xs⋅P(ans=s)E[ans]=\sum_{s=1}^x s\cdot P(ans=s) 也就相当于: E[ans]=∑xs=1P(ans≥s)E[ans]=∑s=1xP(ans≥s)E[ans]=\sum_{s=1}^x P...

2018-08-25 11:00:53 808

原创 【BZOJ5333】荣誉称号(SDOI2018)-找规律+树形DP

测试地址:荣誉称号 做法:本题需要用到找规律+树形DP。 第一次想出Luogu黑题祭。 首先,考虑题目中条件的形式,如果我们令点iii的父亲为点⌊i2⌋⌊i2⌋\lfloor \frac{i}{2}\rfloor(实际上就是在二进制中右移一位),那么所有点可以拼成一棵二叉树,问题就可以表示成:要使树上所有长为k+1k+1k+1的祖孙链上的aaa值之和对mmm的余数为000,点iii上aaa值...

2018-08-23 20:19:09 351

原创 【CF966E】May Holidays-分块+虚树

测试地址:May Holidays 题目大意:一个nnn个人的公司,除了111号外每个人都有一个直属上司,uuu为vvv的下属当且仅当uuu的直属上司是vvv或uuu的直属上司是vvv的下属。每个人都有一个承受阈值titit_i,当一个人的下属中有严格大于titit_i个人休假而他没有休假时,他就会不开心。mmm次操作(改动一个人的休假状态),求每次操作后不开心的人数。 做法:本题需要用到分块...

2018-08-22 19:57:35 465

原创 【BZOJ4484】最小表示(JSOI2015)-贪心+拓扑排序+bitset

测试地址:最小表示 做法:本题需要用到贪心+拓扑排序+bitset。 显然,如果一条边对连通性没有影响,那肯定是要删掉的。现在的问题就是如何找到这些边。 我们考虑在反拓扑序上求。考虑一个点的所有出边,对于每个指向的点,如果当前还没有找到从当前点到这个点的路径,那么当前的边就要保留,并用这个点能到达的点的集合更新当前点的集合,这个显然能用bitset做到O(nm32)O(nm32)O(\fra...

2018-08-20 20:07:48 219

原创 【BZOJ5416】冒泡排序(NOI2018)-组合数学+树状数组

测试地址:冒泡排序 做法:本题需要用到DP+组合数学+树状数组。 一道神题,用到的数学知识并没有难到哪里去,但成功把我这种弱菜区分掉了。 首先,交换次数能达到题目中给的下界的充要条件是,排列中不存在长度≥3≥3\ge 3的下降子序列。因为要达到下界,每次交换都应该要“达到效果”,即两边的元素都往该去的方向移动。而一旦出现长度为333的下降子序列,就一定存在一次交换,使得对一个元素没达到效果,...

2018-08-18 13:36:40 359

原创 【BZOJ5319】军训列队(JSOI2018)-主席树+二分

测试地址:军训列队 做法:本题需要用到主席树+二分。 首先可以证明,最好的匹配方法是,按照区间内权值顺序从小到大依次匹配[K,K+r−l][K,K+r−l][K,K+r-l]。证明如下: 假设区间内有两个数x<yx<yxi+1i+1i+1和iii,那么: 当x<y≤ix<y≤ixi+1≤x<yi+1≤x<yi+1\le xx≤i<i+1≤yx≤i&...

2018-08-16 21:23:32 260

原创 【BZOJ5417】你的名字(NOI2018)-后缀自动机+主席树

测试地址:你的名字 做法:本题需要用到后缀自动机+主席树。 首先考虑l=1,r=|S|l=1,r=|S|l=1,r=|S|的情况。考虑TTT的每个前缀的贡献,我们需要找到它最短的没在SSS中出现过,而且没在TTT的前面部分出现过的后缀,这样包含它的所有后缀就都是合法的贡献了。显然这个后缀的长度等同于,在SSS中出现过或者在TTT的前面部分出现过的最长的后缀的长度加111。因此我们分开考虑两种情...

2018-08-10 13:03:04 886

原创 【BZOJ1396】识别子串-后缀自动机+线段树

测试地址:识别子串 做法:本题需要用到后缀自动机+线段树。 很快能有一个想法,就是用后缀自动机求出所有识别子串,然后在线段树上区间更新。可是识别子串的数目可能很多,直接更新会挂,这是不是就意味着不能做呢?别急,先来考虑识别子串这个性质会不会使它的分布更加特殊。 很快我们便观察到了一个事实,包含一个识别子串的所有子串都是识别子串。我们知道子串的集合就等同于所有前缀的所有后缀的集合,根据上面的性...

2018-08-09 12:12:12 284

原创 【HDU4787】GRE Words Revenge-AC自动机+分块

测试地址:GRE Words Revenge 题目大意:维护以下操作:1.在词典中加入一个单词。2.询问一个字符串SSS中有多少个子串是词典中的单词。强制在线。 做法:本题需要用到AC自动机+分块。 如果离线,我们可以直接把所有涉及的单词先加入到trie中,然后建AC自动机,在运行的时候打标记和匹配即可。 但这里强制在线,我们知道AC自动机本身是不能支持在线插入操作的,所以每次插入后我们需...

2018-08-08 11:49:43 278

原创 【51Nod1766】树上的最远点对-线段树+树的直径

测试地址:树上的最远点对 做法:本题需要用到线段树+树的直径。 我们直觉上感觉这题的区间询问需要用到线段树,那么我们就要发掘出问题中隐藏的可合并的性质。而看见最远点对又会想到树的直径,那么树的直径这个信息是不是可以快速合并的呢?怎么合并呢?下面我们就夯实理论基础,这样我们就能很简单地解决这一题了。 首先有一个结论:树上任意一个点在树中的最远点是树的直径的某个端点。我们可以用反证法轻易地证明这...

2018-08-06 10:58:41 550

原创 【BZOJ3648】寝室管理-环套树+点分治+树状数组

测试地址:寝室管理 题目大意:给定一棵树或环套树,求图中经过至少kkk个点的路径数。 做法:本题需要用到环套树+点分治+树状数组。 先考虑树上的做法。对于这种树上路径计数的问题,应该能形成一种条件反射了,不能DP马上想到点分治。点分治中,每一次我们考虑过某个点的合法路径数时,先把子树列成一列,对于一棵子树里的所有点,它到根的距离disdisdis和之前子树中的点到根的距离xxx应该满足x+d...

2018-08-05 11:31:50 283

原创 【BZOJ1367】Sequence(Baltic2004)-贪心+左偏树

测试地址:Sequence 做法:本题需要用到贪心+左偏树。 在讲做法之前先说几句无关的话……NOI考完之后内心一片空虚,于是在颓废了约十天之后终于鼓起勇气写代码了,实在是可喜可贺…… 对于这一道题,题目要求的是递增序列,发现不太好求,于是根据要求的值的几何意义,如果我们把原数列做ai=ai−iai=ai−ia_i=a_i-i这样的变换,那么我们求出的不递减序列的最优解和原来的最优解相同。 ...

2018-08-04 09:47:02 234

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除