自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Prufer序列+高精度--bzoj1005: [HNOI2008]明明的烦恼

传送门话说这还是我第一道关于pruferpruferprufer序列的题。。。长度n−2n-2n−2的pruferpruferprufer序列可以唯一表示一棵nnn个节点的树,而且每个节点在序列中出现次数都是d[i]−1d[i]-1d[i]−1所以如果给定每个点的d[i]d[i]d[i],所有不同的树就是(n−2)!∏i=1n(d[i]−1)!\frac{(n-2)!}{\prod_{i=1...

2019-01-21 12:09:49 278

原创 【模板】可持久化并查集

突然想起来大家都会的可持久化并查集我还不会,所以来学一下qwqqwqqwq感觉可持久化并查集就是把主席树上的点的存储信息改了一下。。其他也没什么不同的,查询一个点的父亲的时候是log2nlog^2nlog2n的,修改啥的都是lognlognlogn,总复杂度是mlog2nmlog^2nmlog2n,空间是mlognmlognmlogn然而,,,看了一个dalao的博客之后觉得事情有那么一点点...

2019-01-20 23:14:57 274

原创 单调队列优化dp--bzoj5185: [Usaco2018 Jan]Lifeguards

传送门luoguluoguluogu上据说有一道这个题的弱化版,把删kkk个改成了删111个,那个大概线段树之类的随便做一下就好了这道题可以先把包含的都去掉,所有线段就是相交或者不相交的了,然后考虑用dpdpdp解决,设f[i][j]f[i][j]f[i][j]表示到第iii个线段,iii必须留下,之前删掉了jjj条线段的最长覆盖长度,则f[i][j]=f[x][j−(i−x−1)]+ri−...

2019-01-19 15:52:09 473

原创 后缀自动机--bzoj4032: [HEOI2015]最短不公共子串

传送门一个题=四个题T1这就是对于两个串上的问题通常套路就是对一个建后缀自动机另一个在上面跑,所以对BBB建出后缀自动机然后枚举AAA的子串开头跑就行了,复杂度O(n2)O(n^2)O(n2)T2有一个东西叫做序列自动机,但其实一点也不自动,也没有自动机该有的样子对一个串从后往前记录每个字符出现的最近位置,然后用一个pre[i][j]pre[i][j]pre[i][j]表示iii位置往...

2019-01-19 11:21:18 180

原创 广义后缀自动机--bzoj3926: [Zjoi2015]诸神眷顾的幻想乡

因为叶子只有202020个,所以把每个叶子当作根然后把从根开始的所有子串都插入一个广义后缀自动机,这样就可以把所有串取到,每次插入的时候记录一下fafafa是哪个,从那个开始插就好了这个要求不同子串个数要用∑i=1cntlen[i]−len[fai]\sum_{i=1}^{cnt}len[i]-len[fa_i]∑i=1cnt​len[i]−len[fai​]因为faifa_ifai​是iii...

2019-01-18 22:33:13 175

原创 虚树+树形DP--luoguP4426 [HNOI/AHOI2018]毒瘤

传送门虚树毒瘤题首先注意到mmm只比nnn大101010,所以可以随便找个生成树,把mmm多出来的边上的点都拎出来建一个虚树,可以枚举每条边的深度较浅的那个点选不选,在虚树上树形dpdpdp,然后发现虚树上父亲到儿子的系数是不变的,所以可以树形dpdpdp预处理出来k[u][0/1][0/1]k[u][0/1][0/1]k[u][0/1][0/1]表示uuu到faufa_ufau​中fauf...

2019-01-18 13:40:49 252

原创 min_25筛(学习笔记)

之前考试就学了一下min_25min\_25min_25筛,现在理解得更多一些,补一波笔记先放题免得我忘了LOJ#6053. 简单的函数#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include&amp

2019-01-17 21:48:18 2143

原创 【模板】替罪羊树

本来是打开了一道点分治的题,后来发现要用高速平衡树据说splaysplaysplay和fhq Treapfhq\ Treapfhq Treap都非常非常的慢据说替罪羊树是除了红黑树以外最快的平衡树?于是就来学习了一下核心思想就是每次插入不改变树的形态,当树极不平衡时就把它拍扁重构alpha=0.8alpha=0.8alpha=0.8的时候据说最快模板题:luoguP...

2019-01-16 11:30:52 383

原创 set+LCA--luoguP3320 [SDOI2015]寻宝游戏

传送门说是虚树…其实也没真正用到虚树因为他最后要走回去,所以每条边都会经过两遍,选哪个点都无所谓,所以可以按照dfsdfsdfs序排序,加入一个新点的时候就把前驱后继的距离减掉再加上它到前驱和它到后继的距离,这个求一下lcalcalca就行,删掉点就是反过来。一开始setsetset写的不太好rerere了,注意判一下它没有前驱或者后继的情况代码如下:#include<iostre...

2019-01-15 14:37:55 278

原创 SAM+虚树--CF1073G Yet Another LCP Problem

传送门这题调的我两眼发黑。。。首先想SAMSAMSAM建出来就是反串的后缀树,那么把原串反转一下,求后缀的lcplcplcp就变成了求前缀的最长后缀,在SAMSAMSAM上就是两个代表节点lcalcalca的lenlenlen,用这些关键点和他们的lcalcalca建出虚树,然后在虚树上跑,设siza[u],sizb[u]siz_a[u],siz_b[u]siza​[u],sizb​[u]分别...

2019-01-14 22:28:04 294

原创 【模板】矩阵求逆

方法就是通常的那种方法,就是在原矩阵旁边放一个单位矩阵,对两个矩阵一起高斯消元,当原矩阵被消成单位矩阵时右边的单位矩阵就是它的逆,在高斯消元过程中如果不能继续下去就无解步骤就是先找到当前要操作的行,然后给这一行进行变换,乘以1fi,i\frac{1}{f_{i,i}}fi,i​1​然后对其余行,给操作行乘以−fj,i-f_{j,i}−fj,i​加到这些行上去,这样就能保证fi,i=1f_{i,...

2019-01-14 08:59:27 645

原创 二项式反演--CF GYM 101933 K. King's Colors

传送门二项式反演裸题设fif_ifi​表示至多有iii种颜色的方案数,gig_igi​为恰好有iii种颜色的方案数这个是跟树的形态无关的因为一个点只有一个父亲,所以fi=i×(i−1)n−1f_i=i\times(i-1)^{n-1}fi​=i×(i−1)n−1再套用公式fk=∑i=0kCki×gif_k=\sum_{i=0}^k C_k^i\times g_ifk​=∑i=0k​Cki​...

2019-01-14 08:28:23 398

原创 李超线段树(学习笔记)

最后一个。。。李超线段树就是用来解决平面上放线段的一些问题可以去看这个博客我懒得写了一个例题:bzoj3165: [Heoi2013]Segment李超线段树裸题代码如下:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include...

2019-01-12 19:10:33 546 4

原创 二项式反演(学习笔记)

qwqqwqqwq机房最后一个学二项式反演的人众所周知 二项式反演可以表示成fn=∑i=0n(−1)i×Cni×gi⟺gn=∑i=0n(−1)i×Cni×fif_n=\sum_{i=0}^n (-1)^i\times C_n^i\times g_i\Longleftrightarrow g_n=\sum_{i=0}^n(-1)^i\times C_n^i \times f_ifn​=i=0∑n...

2019-01-12 16:37:52 11973 3

原创 状压+FMT--luoguP4221 [WC2018]州区划分

传送门暴力是3n3^n3n枚举子集,f[S]=∑S′∈Sf[S′]×(sumS−S′sumS)pf[S]=\sum_{S'\in S}f[S']\times (\frac{sum_{S-S'}}{sum_S})^pf[S]=∑S′∈S​f[S′]×(sumS​sumS−S′​​)p然后把这个东西分成f[i][S]f[i][S]f[i][S]...

2019-01-11 21:51:20 254

原创 动态点分治(学习笔记)

机房最后一个学习动态点分治的人(也许不是前置知识:点分治(雾动态点分治也叫点分树,就是把点分治时候每个重心组成的树拿出来用于动态维护一些东西建点分树的过程就是点分治过程,同时记下每层重心的父亲(也就是上一层重心),一般是提前建出点分树,然后每次修改和询问时暴力跳树,因为点分树的树高是lognlognlogn级别的,所以总复杂度是nlognnlognnlogn(当然有时候需要一些数据结构可能...

2019-01-11 11:44:54 209

原创 【模板】Pollard Rho

就是个板子···然而luoguluoguluogu上最后一个点太毒了949494分弃疗复杂度是p\sqrt pp​的,ppp是nnn的某个最小因子,满足ppp与n/pn/pn/p互质对于复杂度的优化可以用真正地快速乘,以及ctzctzctz二进制版gcdgcdgcd,还有在中间每次k<<=1k<<=1k<<=1据说可以更快,...

2019-01-02 22:01:42 142

空空如也

空空如也

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

TA关注的人

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