自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LaTeX公式大全

在这里quq被ghostcai安利了一发Typora

2018-10-09 20:27:49 8568

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

原创 单调队列优化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 181

原创 广义后缀自动机--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 2144

原创 【模板】替罪羊树

本来是打开了一道点分治的题,后来发现要用高速平衡树据说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 648

原创 二项式反演--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 12030 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 255

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

机房最后一个学习动态点分治的人(也许不是前置知识:点分治(雾动态点分治也叫点分树,就是把点分治时候每个重心组成的树拿出来用于动态维护一些东西建点分树的过程就是点分治过程,同时记下每层重心的父亲(也就是上一层重心),一般是提前建出点分树,然后每次修改和询问时暴力跳树,因为点分树的树高是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

原创 点分治+树状数组--牛客网字节跳动冬令营网络赛J Sortable Path on Tree

传送门吕老板讲的点分治好题啊qwq(他还讲了一个故事:他们打比赛的时候看到这题,这不是点分治吗,于是跟猫老师说那你写一下吧于是猫锟没有写出来足可见这题的毒了…题目大意就是要求树上有对少点对使得他们的路径是有序的,有序的就是把前一段或者后一段切下来拼到另一边就变成了升序或者降序的如果点分治的时候想讨论序列的形态什么的非常的麻烦,吕老板讲了一个很简单的做法:将一段路径的点权用大于小于符号连接...

2018-12-27 16:55:50 169

原创 后缀数组+调和级数--bzoj2119: 股市的预测

传送门其实就是复杂度是调和级数…首先差分一下就变成了找到形如abaabaaba的串的个数,暴力求的话就是n2lognn^2lognn2logn的,可以枚举aaa的长度,然后把串分成一段一段的,只计算每段的第一个点,从第一个点lll找到对应的r=l+len+mr=l+len+mr=l+len+m,然后看l,rl,rl,r能同时向左右延伸到哪里,也就是后缀lcplcplcp和反串后缀lcplcpl...

2018-12-27 12:00:46 219

原创 后缀数组+二分+莫队--luoguP2336 [SCOI2012]喵星球上的点名

(树状数组那么好写我为什么要写莫队 雾)传送门后缀数组就不说了···然后对于每一个询问也插入序列,他的答案是一个lcp≥lenlcp\ge lenlcp≥len区间,可以二分出来,然后就变成区间内问不同数字的个数,这就是裸莫队了···第二个问题的话可以一边莫队一边计算,记录每个数字上一次出现的位置,然后把这一段的和加上细节好多的···因为后面询问没有用特殊数字隔开wa了好久还有莫队排序那...

2018-12-27 00:01:58 189

原创 set+线段树合并分裂--bzoj4552: [Tjoi2016&Heoi2016]排序

传送门机房最后一个学习线段树合并的人qwq题目要求支持区间升序或降序排序,并且单点查询思路是一开始对每一个点建一个权值线段树,然后排序的话就是把一段权值线段树都合并起来,这样就无所谓顺序了,然后具体操作用setsetset什么的维护一下线段树的左右端点就好了重要的就是线段树合并和分裂了,合并的话就是真正意义上的合并(好像有时候不是直接合并?)把对应的sizsizsiz加起来,分裂根据本题目...

2018-12-24 20:57:32 228

原创 2018.12.22模拟赛

肥肠良心的一场模拟赛了···T1【题目描述】Mirko想在一块土地上种草莓。这块土地可以看作一个N行M列格子组成的矩形,这些格子中有些适合种植草莓,有些不适合。Mirko希望在矩形中找出一片满足种植要求的长方形区域,即区域中每个格子都适合种植。这时Mirko突然想到一个问题。设格子(i,j)的权值W(i,j)表示有多少个满足种植要求的长方形区域包含了这个格子。那么所有格子的权值之和是多少...

2018-12-23 22:47:15 187

原创 贪心+线性基--bzoj2460: [BeiJing2011]元素

传送门突然发现自己忘了线性基怎么写了···于是复习一下裸的线性基,要权值最大就按权值排序然后一个一个加。线性基:axa_xax​的二进制第xxx位为1,构造方法就是从高位到低位扫描每个数ppp,如果xxx这一位是111,并且ax=0a_x=0ax​=0,那么让ax=pa_x=pax​=p,跳出循环,否则就让ppp^=ax=a_x=ax​代码如下:#include<iostream&...

2018-12-23 09:03:36 1042

原创 LCT(动态最小生成树)+kruscal--bzoj2594: [Wc2006]水管局长数据加强版

传送门(好久不打lct板子都快忘了lct维护边权的套路就是把边拆成点,这个点向两边的点分别连边,点权就是边权,原树上的点根据需要可以设点权为inf或者-inf动态最小生成树离线删边变加边,就是在lctlctlct中记录mx[x]mx[x]mx[x]和id[x]id[x]id[x]表示子树点权中最大的点权和点的编号,加入一条新边(x,y)(x,y)(x,y)的时候,如果两点没有联通就连起来,如...

2018-12-21 19:05:09 322

原创 后缀数组+单调栈--poj3415 Common Substrings

传送门时隔多年(其实也就几天 )我终于把这道题A了就是用普通的后缀数组结合单调栈,加了个>k>k>k的限制,和[HAOI2016]找相同字符思路差不多,但有一些细节比如h[i]h[i]h[i]是和上一名的lcplcplcp,所以有些判断要−1-1−1之类的一直被多组数据坑···s[n+1]s[n+1]s[n+1]一定要置000代码如下:#include&...

2018-12-12 08:35:42 181

原创 FFT+生成函数--hdu5307 He is Flying

传送门题意:给一个数列,若有一个数对(i,j)(i,j)(i,j)满足sum[i]−sum[j−1]==Ssum[i]-sum[j-1]==Ssum[i]−sum[j−1]==S,则得到i−(j−1)i-(j-1)i−(j−1)的收益,求SSS取000到sumnsum_nsumn​的每一个值时,各自的全部收益。看那个范围就是典型的FFTFFTFFT啊···不过这个题的构造还是很巧妙的,因为要...

2018-12-11 10:20:04 191

原创 后缀数组+单调栈+set--bzoj4453: cys就是要拿英魂!

传送门好题!!!介于是一道权限题所以我就粘题面吧···Descriptionpps又开始dota视频直播了!一群每天被pps虐的蒟蒻决定学习pps的操作技术,他们把pps在这局放的技能记录了下来,每个技能用一个字符表示。经过研究,蒟蒻们发现字典序更大的连招威力更大。于是所有蒟蒻都想学习pps最强的连招。但是他们太弱了,不能学会整个视频里的连招,只能学会陈老师一段区间间内的连招,可是这个...

2018-12-07 21:43:30 187

原创 (假的)后缀数组--bzoj4319: cerc2008 Suffix reconstruction

传送门这其实是一道假的后缀数组233考查的其实是对后缀数组的理解quq#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define maxn 500005using namespace std;...

2018-12-07 21:29:45 164

原创 后缀数组+主席树--bzoj4556: [Tjoi2016&Heoi2016]字符串

传送门可以先二分答案midmidmid,判断[a,b−mid+1][a,b-mid+1][a,b−mid+1]是否有lcp(rk[i],rk[c])≥midlcp(rk[i],rk[c])\ge midlcp(rk[i],rk[c])≥mid的iii,这个是一个区间,可以再用二分+ststst表O(1)O(1)O(1)查询找出来,然后用主席树判断[a,b−mid+1][a,b-mid+1][a,...

2018-12-07 11:41:36 204

原创 后缀数组+二分--bzoj4698: Sdoi2008 Sandy的卡片

传送门差分一下,去掉首项,然后二分一个长度看连续的一段大于这个长度的heightheightheight是否能包含所有nnn个序列代码如下:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define...

2018-12-07 09:09:45 159

原创 组合数学+二次剩余--51Nod 1236 序列求和 V3

传送门nnn忘记取模调了半个小时祭。fibfibfib是有通项公式的,然后式子写出来就是这样:设x=1+52,y=1−52,z=15x=\frac{1+\sqrt{5}}{2},y=\frac{1-\sqrt{5}}{2},z=\frac{1}{\sqrt{5}}x=21+5​​,y=21−5​​,z=5​1​ans=∑i=1nzk×(xi−yi)kans=\sum_{i=1}^n z^k...

2018-12-06 18:39:44 328

原创 组合数学--51Nod 1149 Pi的递推式

传送门F(i)F(i)F(i)可以理解成从数轴上位置iii出发每次向左走111或PiPiPi个单位,使最终位置刚好小于444的方案数,枚举走了多少个111,判断一下最后剩下的如果≥3\ge3≥3就可以走111,否则只能走PiPiPi#include<iostream>#include<cstdio>#include<algorithm>#include...

2018-12-06 16:32:52 160

原创 组合数学--51Nod 1627 瞬间移动

传送门隔板法裸题枚举走了几步,然后隔板法,不允许空#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define maxn 200005#define LL long longusing names...

2018-12-06 15:41:56 169

原创 组合数学--51Nod 1556 计算

传送门组合数学好题!首先考虑题目要求,在一个数xxx后面填的数可以是x,x−1,x+1x,x-1,x+1x,x−1,x+1,把数列看做网格图,把+1+1+1看做右上走一步,−1-1−1右下,000往右,问题变成了从(0,0)−>(n−1,m)(0,0)->(n-1,m)(0,0)−>(n−1,m)不穿过x=0x=0x=0的方案数,根据套路,可以用总−-−穿过的...

2018-12-06 15:15:01 226

原创 二次剩余(学习笔记)

就是用来求解x2≡n mod px^2\equiv n \bmod px2≡nmodp的一个方法对ppp进行分类讨论:p=2p=2p=2 ,则x=nx=nx=nppp为奇素数勒让德符号:(ap)={1a在模p意义下是二次剩余−1a在模p意义下是非二次剩余0a≡0 mod&...

2018-12-06 10:59:08 2273

原创 生成函数+组合数学--bzoj3028: 食物

传送门可以把这些限制都列成生成函数:1+x2+x4+...=11−x21+x^2+x^4+...=\frac{1}{1-x^2}1+x2+x4+...=1−x21​1+x1+x1+x1+x+x2=1−x31−x1+x+x^2=\frac{1-x^3}{1-x}1+x+x2=1−x1−x3​x+x3+x5+...=x1−x2x+x^3+x^5+...=\frac{x}{1-x^2}x+x3...

2018-12-06 09:46:15 214

原创 后缀数组+平衡树--luoguP4070 [SDOI2016]生成魔咒

传送门首先有一个结论:一个串中本质不同的子串个数为n×(n+1)2−∑i=1nheight[i]\frac{n\times(n+1)}{2}-\sum_{i=1}^nheight[i]2n×(n+1)​−∑i=1n​height[i]因为正着考虑的话每次要加很多个后缀,不好维护,所以可以把序列倒过来看,每次加一个字符相当于加一个后缀,那就可以先预处理出整个序列的heightheighthei...

2018-12-05 22:19:28 144

原创 组合数学+中国剩余定理--51Nod 1362搬箱子

传送门题目说只能往三个方向走,往右,往下和右下,那么就可以找他们之间的关系,假如往下走了aaa步,右下走了bbb步,右走了ccc步,就有:a+b=na+b=na+b=nb+c=mb+c=mb+c=m于是就可以套路地枚举往下走了几步但题中只需要到最后一行就好了,所以还需要枚举到了哪一列就有了:ans=∑i=0n∑j=0mCi+ji×Cjn−ians=\sum_{i=0}^n \sum_{...

2018-12-05 15:28:36 207

原创 多项式求逆/指数生成函数/分治FFT--bzoj3456: 城市规划

首先是多项式求逆(好像也是普遍做法?先来推一推柿子qwqqwqqwq设f[i]f[i]f[i]为iii个点的方案数,若不考虑不合法情况,f[i]=2Ci2f[i]=2^{C_i^2}f[i]=2Ci2​若考虑不合法情况,就是有不连通的情况,因为所有点的本质都是一样的,所以我们只需要规定一个点为基准点,假设为111那么111号点的联通块大小可能为1≤j≤i−11\le j\le i-11≤j...

2018-12-05 11:18:27 345

空空如也

空空如也

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

TA关注的人

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