自定义博客皮肤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的博客

一位蒟蒻的事故记录

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

原创 【清华2019冬令营模拟12.8】视野

计算几何弱渣果然就是一点感觉也没有。题目大意;题解:首先考虑不删怎么做?肯定要把点给离散,那么现在对于每一小段,要求出是哪条线段最近?按一个顺序扫过去,每一条线段打一个加入和删除的标记。由于线段互不相交,所以线段顺序不会随着小段的移动而改变。因此,我们可以用一个set去维护插入删除,比较远近时,就求交,判断谁近。那么第一问答案就出来了。第二问、第三问都是一样的。删掉一条线段,...

2018-12-09 21:22:34 387

原创 数列特征方程学习小记

参考资料:《组合数学》特征方程这个东西是用来求非齐次常数递推式的通项公式的,简单地说,就是:有一数列fff,f[0..(k−1)]f[0..(k-1)]f[0..(k−1)]为定值;对于f[i](i>=k)f[i](i>=k)f[i](i>=k),有f[i]=∑j=1kf[i−j]∗b[j]f[i]=\sum_{j=1}^kf[i-j]*b[j]f[i]=...

2018-12-07 22:48:15 1352

原创 JZOJ 5967. 常数国

题解:对于这种题还是要从部分分的做法下手。如果操作都是[1…n],我们并不用关心具体的变化,每次都是取出最大值,然后插入一个值,显然用个堆就行了。对于100分也是类似的,观察时限和数据范围,不难想到分块。对于整块的,只要取出最大值,插入一个值,还要打上一个标记,表示插入个这个值。因为在处理散块的时候,需要先把序列还原出来,那么就是标记如何下传的问题了。首先不然想到标记之间的顺序没有关系...

2018-11-29 22:01:53 214

原创 [agc018f]Two Trees

题目大意:给每个点附一个权值,使得两棵树的每个子树的权值和的绝对值=1题解:完全想不到算法是什么……首先需要判断是否有解,随便搞一搞就知道是一个点在两棵树上的度数的奇偶性相同。保留树边。建立超级源S,向两个根连边。如果x在两棵树上的度数是奇数,则连边。S开始跑欧拉回路,度数为奇数的点,如果是x1->x2,权值为1,否则为-1.度数偶数的点v=0证明:考虑一个子树|出去...

2018-11-29 21:33:01 262

原创 动态dp学习小记

据说这东西猫锟在WC2018讲过,怎么一点印象都没有呢?当时应该是在冬眠NOIP2018T6如果用动态dp去看就是一道裸题,不过因为询问是相互独立的,即修改没有时效性,可以直接用倍增代替动态dp。先看一道题:P4719 【模板】动态dp如果没有修改,这题就是树形dp入门题:没有上司的晚会设f(x,0/1)f(x,0/1)f(x,0/1)分别表示以x为根的子树中,选x的最大独立集,不选x...

2018-11-20 22:46:41 383

原创 考好NOIP是不阔能考好的,这辈子都不阔能考好的

去年死在day1T1,今年死在day2T1,绝了绝了day0:白天穿着礼服五点钟匆忙赶到学校,结果跟我们说不用拍照了?听说上午入场式时,我们班的入场词主持人宣读错了,念了四大竞赛(我们不在方阵里),少了最后的祝我们比赛顺利,symbol听到了很生气,然后被扣分了,hhh……接着是班级的生日会,拿了打包好的东西就要上车出发了。我的生日当然要Hai起来啦~于是晚上花400R请了一堆饭桶来...

2018-11-13 16:42:57 477 1

原创 Johnson全源最短路算法

我们最熟悉的全源最短路算法那肯定是Floyd。不过Floyd的复杂度是O(n3)O(n^3)O(n3),显然难以接受。当图比较稀疏的时候,即点数n和边数m同阶时,Johnson算法便有了用武之地。假设图没有负边,则可以直接用堆优化的dij跑n次,时间复杂度为O(n∗((n+m)logm))O(n*((n+m)logm))O(n∗((n+m)logm))。如果有负边,考虑将图V转换为V’,V...

2018-11-07 16:55:58 2674

原创 NOIP2018赛前反思、检查

开这篇博客时还有最后一轮模拟,希望不要再劝退吧。想想停课一个月的所有模拟,好像前两周还挺不错的,在神仙云集的学军中排名也有前几。不过有各种零零散散的错误,很多可以通过出极限数据来查到,但是忘出或没出。10.20:挂得比较惨。第二题写一种情况写假了。第三题以为一种情况不会挂没特判结果爆0。第三周开始,题目开始变难,分数开始暴跌。10.30:第二题搞了一个小时才上了正解的思路。第三...

2018-11-06 15:22:24 319

原创 高维前缀和学习小记

问题引入:现有a[i](0<=i<2n)a[i](0<=i<2^n)a[i](0<=i<2n)对于每一iii,求∑j∈ia[j]\sum_{j∈i}a[j]∑j∈i​a[j]这里的∈∈∈指二进制状态下的被包含。暴力解决问题:即暴力枚举子集求和。复杂度计算:∑i=0nCni∗2i\sum_{i=0}^nC_{n}^i*.

2018-11-03 10:58:13 808

原创 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 270

原创 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 278

原创 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 183

原创 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 586

原创 【GDOI2016模拟3.14】hashit

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

2018-10-24 22:16:18 235

原创 bzoj2555: SubString

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

2018-10-21 11:48:17 196

原创 替罪羊树学习小记

替罪羊树是一种没有旋转操作的二叉搜索树。或者说就是一颗二叉搜索树,暴力的那种。插入就是自上而下找到应该插入的地方而后插进去。我们知道这样搞肯定是可以变成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 247

原创 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 404

原创 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 233

原创 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 214

原创 无旋treap学习小记

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

2018-10-17 08:49:55 369

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

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

2018-10-16 16:42:00 183

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

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

2018-10-12 21:34:32 520

原创 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 726

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

此篇博客没有证明(我太菜了),只有结论。要证明见栋栋的博客 。生成树计数,顾名思义,就是求生成树的方案数。基尔霍夫矩阵:定义度数矩阵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 403

原创 51nod 1355 斐波那契的最小公倍数

原题链接.题解:这题肯定是我做过的最简单的八级算法题了。设FiFiFi为斐波拉契序列的第i项。通过打表可得: gcd(Fn,Fm)=Fgcd(n,m)gcd(Fn,Fm)=Fgcd(n,m)gcd(Fn,Fm)=F_{gcd(n,m)}接下来尝试去证明这个结论。首先斐波拉契序列有一个递推式: Fn+m=Fn−1∗Fm+Fn∗Fm+1Fn+m=Fn−1∗Fm+Fn∗Fm+...

2018-09-13 21:31:13 297

原创 2018清华集训(YL联考)9.9 T2 triangle

题目大意:以下所有的东西都在第一象限。给出n个点,和m个以原点为顶点的三角形,对每一个三角形询问是否有点在三角形内。1 <= n <= 100000题解:把三角形看成原点出去的两个向量。首先一个点要在三角形内,一定要在这两个向量的夹角间,并且要在三角形另外两个顶点形成的直线下。第一个限制非常好搞,只需要把所有点极角排序,那么合法的点就在一个区间内了。对于...

2018-09-12 22:07:17 213

原创 2018清华集训(YL联考)9.9 T1 Dream

题目大意:核心问题是个一个n个点、m条边的有向图。要求求以每一个点x|x∈Vx|x∈Vx|x∈V作为起点,每个边有一个往它这边游走的权重,游走到终点n停下,求每个边期望经过的次数。1<=n<=400题解:假设起点是确定的,一个经典的做法是设每个点经过的次数为一个未知数。那么对每一个点可以列出一条方程,就是由相邻的点转移过来,终点没有出边,然后起点的那条方程的常数...

2018-09-10 22:30:47 249

原创 51nod 1847 奇怪的数学题(Mobius反演+min_25筛+杜教筛+自然数幂和)

传送门.题解:设s(n)s(n)s(n)表示nn的最小质因子nn的最小质因子n \over n的最小质因子先小反演一下:∑ni=1∑nj=1sgcd(i,j)k∑i=1n∑j=1nsgcd(i,j)k\sum_{i=1}^n \sum_{j=1}^n sgcd(i,j)^k =∑nd=2s(d)k∗∑ni=1∑nj=1[gcd(i,j)=d]=∑d=2ns(d)k∗∑i=1n∑j...

2018-09-08 22:11:46 400

原创 最大真因数(min_25筛)

Description:一个合数的真因数是指这个数不包括其本身的所有因数,例如6 的正因数有 1; 2; 3; 6,其中真因数有1; 2; 3。一个合数的最大真因数则是这个数的所有真因数中最大 的一个,例如6 的最大真因数为3。 给定正整数l 和r,请你求出l 和r 之间(包括l 和r)所有合数的最大真因数之和。题解:考虑Min_25筛求质数和。求g的过程中,有一个枚举最...

2018-09-08 21:58:36 1232

原创 min_25筛学习小记

min_25筛是洲阁筛的简化版,虽然我并不会洲阁筛。min_25筛可以筛一些特殊积性函数的前缀和,有些不是积性函数也可以筛,比如说最大真因子。同杜教筛一样,同时筛出了所有⌊ni⌋⌊ni⌋\lfloor {n \over i} \rfloor的前缀和。至于min_25能筛的积性函数有哪些要求,在博客后面会讨论所有时间复杂度证明见朱大佬2018国家预备队论文。筛的本质:1−n1...

2018-09-08 21:53:44 586

原创 自然数幂和(第二类斯特林数)

1.我们知道nknkn^k可以用第二类斯特林数拆成: ∑ki=1{ki}∗i!∗(ni)∑i=1k{ik}∗i!∗(in)\sum_{i=1}^k \{^k_i\}*i!*(^n_i)2.组合数的一个性质: ∑nj=1(ji)=(n+1i+1)∑j=1n(ij)=(i+1n+1)\sum_{j=1}^n (^j_i)=(^{n+1}_{i+1}) 证明: (i+1n+1)=(in)+(...

2018-09-08 20:35:14 598

原创 新阶段,新起点,新目标

终于(极不情愿地)上高中了,mdzz的是学长说大学更累(莫非是启示我高中如何做?),学海无涯苦作舟吧。感觉要消化暑假的专题的话不是这个学期能够完成的,联赛前还要抽一段时间来稳住,争取到明年省赛前搞懂个十之八九吧,虽然有些毒瘤知识点真的不是人学的!接下来先对每一大块的知识点做总结:搜索:搜索的东西都有一个特性,就是理论十分好理解,无非就是暴力+剪枝嘛作为一个偏冷门的内容,无论是正...

2018-09-05 22:03:31 623

原创 Miner(欧拉路径)

Description:题解:mdzz今天肝c两小时因为copy错了样例,最后被卡常,a没拍直接爆了,b还没时间想,其实是最简单的。对于每一个连通块单独考虑。一个联通块度数为奇数的点肯定是偶数个的,那么用欧拉路径去覆盖这个联通块最少就需要度数为奇数的点个数2度数为奇数的点个数2度数为奇数的点个数\over 2考虑如何找到这些路径?建立超级源,向每个奇点连边,从这个点...

2018-08-22 16:25:12 397

原创 斯特林反演学习小记

我们知道斯特林数和集合有着密不可分的联系,所以斯特林反演一般就用于集合划分上。斯特林反演是用来求容斥系数的。栗子:bzoj4671: 异或图直接做很难做。枚举一个集合划分,对于同一集合的点,不一定要求连通,但是不同集合的点一定不连通。这个的方案数是很好算的。我们给它个容斥系数,设为f(S)f(S)f(S)对于一个确切的图,假设它有m个连通块,显然当m=1时它才是有用...

2018-08-21 16:50:23 1512

原创 线性基学习小记

谢谢hzj的PPTOI中的线性基一般的指的不是向量,而是异或。最简单的理解就是用最少的数去表示一堆数的异或集合。维护一个一维数组,每个元素记录这个位存储的数。设当前要加入的数为x,从高位到低位扫,当前扫到2^i这一位,存储的数为a[i] 若x的2^i位为1,若a[i]=0,那么a[i]=x,并用a[0~i-1]消掉a[i]的2^(0~n-i-1)二进制位(能消就消),...

2018-08-21 16:03:48 266

原创 水果拼盘(反演求容斥系数)

Description:题解:出题人本意是考反演,结果没学好期望线性可加。最近一直在练容斥反演,所以一看就上容斥反演。设f(S)f(S)f(S)表示选的水果的集合是S的方案数,g(S′)g(S′)g(S')表示选的水果是S’的子集的方案数。显然g(S′)g(S′)g(S')是非常好算的,记cntcntcnt表示拼盘里的水果都属于S’集的拼盘的个数,则g(S′)=Ckcn...

2018-08-19 19:10:18 835

原创 platform(SA +线段树二分 or 后缀树+倍增)

Description:题解:有一个非常显然(并不)的结论。就是每一个后缀只有至多一个前缀满足条件。因为对于一个后缀的所有前缀来说来说,随着长度的增加,排名递减,但是val的和不递增,因此只有一个。很容易想到对于每一个后缀二分一下,现在问题在于如何求一个子串的rank?去重?这不是SAM干的事?可是直接用SAM复杂度就乘了n。SAM的fail链就形成原串的反串的...

2018-08-16 19:54:18 278

原创 party(最小割优化最大流或霍尔定理)

Description:题解:很容易想到一个做法就是: 1.先求出c个点的lca 2.接着求出每个点到lca的路径上经过的有哪些特产 3.然后二分答案,建图网络流第三步可以用动态加边网络流优化掉那个log。第二步可以用树链剖分+线段树优化,预处理每个点到其重链链顶的答案,用bitset优化,即可做到: 时间复杂度O(n log n∗m/32)O(...

2018-08-16 19:30:03 424

原创 marshland(最大费用可行流)

Description:题解:分成三类点: (i+j)是奇数的,也就是需要去覆盖的点。 (i+j)是偶数,且i是奇数的点。 (i+j)是偶数,且i是偶数的点。然后你就得到(i+j)是奇数的点一定是由相邻的(i+j)是偶数且i奇偶性不同的两个点覆盖,然后就可以建图流了。注意是最大费用可行流,用SPFA求最长路。由于每次的增广路流量一定是1,所以只要找不超过m条增...

2018-08-16 18:53:40 401

原创 二项式反演总结

总结一下见到的各种二项式反演的套路。总的来说,二项式反演就是容斥。只不过这个容斥有固定的套路,形式就那么几种,我把它们且分为两种形式: 1.直接不好算,但是至多好算。 2.直接不好算,但是至少好算。至多好算:设fifif_i表示恰好有i个得方案数,gigig_i表示至多有i个的方案数。fff和ggg满足: g(n)=∑ni=0Cin∗f(i)g(n)=∑i=0nCni∗f...

2018-08-15 15:30:56 1256

空空如也

空空如也

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

TA关注的人

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