自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cold_Chair的博客

一位蒟蒻的事故记录

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

原创 JZOJ 5939. 【NOIP2018模拟10.30】阻击计划

题解:先把会形成偶环的非树边直接去掉。对于形成奇环的非树边,若树上路径有交,则又会形成偶环。于是问题转换为选若干条路径,使他们无交,且权值和最大。注意到度数很小,n也很小,好像可以状压的样子。设fi,Sf_{i,S}fi,S​表示以i为根的子树中,S的第j位为0表示第j个子节点的子树中的所有边和父边都没有选,为1表示可能选了。对于一条路径,将询问挂在lca上,在lca处讨论贡献,可能需...

2018-10-30 22:29:08 282

原创 JZOJ 5936. 【NOIP2018模拟10.29】逛公园

题解:从头到尾只会写暴力。首先要想到一个结论:设fi,j,xf_{i,j,x}fi,j,x​表示一开始是x,走i到j这一段后的愉悦度。显然有:若x1<=x2,则fi,j,x1<=fi,j,x2f_{i,j,x1}<=f_{i,j,x2}fi,j,x1​<=fi,j,x2​还有fi,j,x=min(si,j,fi,j,∞)f_{i,j,x}=min...

2018-10-29 21:24:01 315

原创 JZOJ 3260【GDOI模拟】Rotate(字符串最小同构)

题解:第一个问题是如何求出一个字符串最小同构。高级算法:把字符串copy一遍接到后边。如果用倍增法求SA,复杂度O(n logn)O(n~logn)O(n logn)如果用DC3求SA,复杂度O(n)O(n)O(n),但是常数巨大。如果用SAM,时间复杂度O(n)O(n)O(n),空间复杂度O(n∗∣str∣)O(n*|str|)O(n∗∣str∣),显然不能接受。...

2018-10-29 17:15:41 200

原创 JZOJ 5929. 【NOIP2018模拟10.26】情书(n的排列LIS期望长度)

题目大意:求长度n的排列的LIS的期望长度。1<=n<=29题答。题解:以前有个经典的做法,就是dp套dp。考虑正常做LIS是怎么做的,有一个辅助数组l[i]表示长度为i的上升子序列的结尾最小是多少。那么很容易想到设fi,jf_{i,j}fi,j​表示确定了排列的前i个,S是一个压缩状态,对于每一个数,0表示没有出现过,1表示出现了,但是不在l里,2表示出现了,且在l中。...

2018-10-26 22:48:09 626

原创 【GDOI2016模拟3.14】hashit

CLJ的题,本来是道后缀平衡树的裸题,先用广义后缀自动机艹过去,之后再补。题目大意:有一个字符串,每次要支持后端插入和后端删除,问操作完后该串不同子串的个数。题解:首先搞成一个trie,然后建广义SAM。然后考虑利用SAM去求不同子串个数。我们知道对于两个trie的两个前缀,它们的lcs就等于它们两个点在SAM上的结尾点在SAM上的lca的深度。因此可以自上而下扫trie,现在相当于...

2018-10-24 22:16:18 254

原创 bzoj2555: SubString

传送门.算是一下复习了两个算法。题解:建出后缀自动机,然后相当于有删边,有加边,动态维护一个点的子树里有多少个结尾的点。可以直接用lct维护子树和,或者ett维护。注意一棵有根树,其实只用lct维护路径和应该是最简单的。Code:#include<cstdio>#include<cstring>#include<algorithm>#defi...

2018-10-21 11:48:17 233

原创 替罪羊树学习小记

替罪羊树是一种没有旋转操作的二叉搜索树。或者说就是一颗二叉搜索树,暴力的那种。插入就是自上而下找到应该插入的地方而后插进去。我们知道这样搞肯定是可以变成O(n)O(n)O(n)的深度其复杂度的保证依赖于重构。即一棵子树不平衡直接提出来重构成完全二叉树。不平衡的定义为:max(siz[x0],siz[x1])>siz[x]∗αmax(siz[x0],siz[x1])&am...

2018-10-21 08:45:31 281

原创 Codeforces 983E NN country

传送门先考虑树是一条链怎么做?最最最最经典的做法就是倍增。设fi,xf_{i,x}fi,x​表示从x出发,用2^i的条路径,最远能够走到哪里。首先预处理f0,xf_{0,x}f0,x​,这个相当于把一段区间的f取max。假设有一路径[x…y],那么要对[x…y]的f取max(fi,y)max(f_i,y)max(fi​,y),但是由于fif_{i}fi​的初值为i,所以也可以说是对[x…...

2018-10-20 16:36:44 440

原创 K-D tree学习小记(贴模板的)

K-D tree是一棵平衡二叉树。K_D即K-Dimention,k维的意思。可能维护什么k维偏序。建树:建树的过程中每次会把一堆点按照某一维切半,中间的提出来作根,分成两个部分作为左右子树继续建树。一个比较劣的维度选法是循环选取,雨露均沾。也可以随机钦点。正统的K-D tree是选方差最大的那一维。复杂度:O(k n log n)O(k~n~log~...

2018-10-18 16:19:25 248

原创 bzoj 3489: A simple rmq problem

传送门.题解:本来应该用数据结构大力解决这题,无非就是对于每一个点求一个next、last分别表示上一个和下一个和它相同的,然后变成了三维偏序问题。然后随便想了个分块,考虑不仅对序列分块,还对值域分块。设si,j,ks_{i,j,k}si,j,k​表示序列中的第i块到第j块在值域第k块的出现次数为1的个数。再维护个前缀和pi,jp_{i,j}pi,j​表示序列前i块在j的个数。然后就可...

2018-10-17 14:48:32 238

原创 无旋treap学习小记

高一才学这么基本的平衡树,退役了~鉴于旋转treap不能可持久化,与splay相比除了常数小以外没有什么不同,所以就不学了。treap:treap = tree + heap,即二叉搜索树+堆它的中序遍历是有序的,这是二叉搜索树的性质。且对于每一个点有一个随机的键值,对于整个树的任意一棵子树,键值满足堆的性质。基于随机,树高期望是log的。非持久化无旋treap:核心操作有两个:...

2018-10-17 08:49:55 389

原创 洛谷P3345 [ZJOI2015]幻想乡战略游戏

传送门题解:先考虑一个简单的问题:怎么在有修改的情况下快速求一个点作为补给站的答案。注意到和路径有关,所以很容易想到点分树。接着可以想到一个十分暴力的做法,就是修改后,每次枚举相邻的点,如果更优就走过去。很容易想到因为每次重心不会移动太远,这个是可以过的,数据也不太好造来卡这个做法。那么有没有稳定的做法?还是每次枚举子树,假设现在在点x,枚举的子树是y,发现y的答案比x优,那么就走到...

2018-10-16 16:42:00 215

原创 OI中用priority_queue替代set的一些小trick

set由于其功能强大,令人爱不释手。但是换来的是令人作呕的常数。其实在一些简单的操作中,set是可以用priority_queue来替代的,后者常数小,代码相对来说也要简洁一些。堆优化dij的priority_queue写法:*SPFA已死,有事烧纸正常的堆写法是需要删除的,显然set是可以做到这一点的,需要用pair,很烦。问题1:c++优先队列默认是大顶堆,我们需要取出的是距离最...

2018-10-12 21:34:32 543

原创 OI中时间函数实战用法

1.用作时间函数随机种子。srand(time(0));2.暴力卡时:在求最优解的题中有奇效。用法:clock()函数,返回值为一个整数,一般电脑的单位是ms,不同电脑可能不同。这没有关系,CLOCKS_PER_SEC是一个定值,就是clock()一秒的数值是多少。int st = clock();//...printf("%lf\n", (double) (clock() -...

2018-10-11 21:08:21 770

原创 生成树计数——矩阵树定理学习小记

此篇博客没有证明(我太菜了),只有结论。要证明见栋栋的博客 。生成树计数,顾名思义,就是求生成树的方案数。基尔霍夫矩阵:定义度数矩阵D,Di,i=点i的度D_{i,i}=点i的度Di,i​=点i的度数再定义邻接矩阵C,Ci,j=[i、j之间有边]C_{i,j}=[i、j之间有边]Ci,j​=[i、j之间有边]基尔霍夫矩阵=D−C基尔霍夫矩阵=D-C基尔霍夫矩阵=D−C行列式:对于一...

2018-10-09 21:21:16 446

空空如也

空空如也

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

TA关注的人

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