自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2018-12-27 16:55:50 185

原创 后缀数组+调和级数--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 231

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

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

2018-12-27 00:01:58 206

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

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

2018-12-24 20:57:32 259

原创 2018.12.22模拟赛

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

2018-12-23 22:47:15 213

原创 贪心+线性基--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 1071

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

原创 后缀数组+单调栈--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 211

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

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

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

2018-12-07 21:43:30 197

原创 (假的)后缀数组--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 192

原创 后缀数组+主席树--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 219

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

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

2018-12-07 09:09:45 176

原创 组合数学+二次剩余--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 359

原创 组合数学--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 192

原创 组合数学--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 179

原创 组合数学--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 283

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

就是用来求解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 2349

原创 生成函数+组合数学--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 225

原创 后缀数组+平衡树--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 174

原创 组合数学+中国剩余定理--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 240

原创 多项式求逆/指数生成函数/分治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 357

原创 思路题--CF1082E Increasing Frequency

传送门大意就是给你nnn个数,你可以选择一段区间加上某个值(可正负),问操作完之后CCC出现的次数最大是多少?我觉得我的做法很巧妙!首先要知道一段区间加上某个值以后这个区间原来=C=C=C的数会变,而对CCC的贡献一定都是一个数而且a[l]=a[r]=a[l]=a[r]=a[l]=a[r]=这个数(显然)因为权值都比较小,然后记录mx[a[i]]mx[a[i]]mx[a[i]]表示某个权值对...

2018-12-04 17:20:08 168

原创 树链剖分+线段树--CF1076E Vasya and a Tree

传送门题意就是给你一颗nnn个点的树,一开始权值都是000,然后mmm个操作,每个操作对一个点xxx的子树中到它距离不超过ddd的点权都加上valvalval,问最后所有点的点权是多少对于子树的修改可以用树剖+线段树做到,但是对于半个子树的修改很难做到,那就可以将修改操作排一下序,按照dep[x]+ddep[x]+ddep[x]+d从大到小排,这样的话当修改完了一层,后面的修改都不会修改到这一...

2018-12-04 16:30:24 199

原创 后缀数组+二分--luoguP2852 [USACO06DEC]牛奶模式Milk Patterns

传送门二分答案,然后后缀数组里再用二分判断,同luoguP3649#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define maxn 20005#define maxm 1000005using...

2018-12-03 16:29:46 145

原创 FFT--UVA12633 Super Rooks on Chessboard

传送门不那么裸的FFTFFTFFT,题目给的标号方式不太好,可以考虑改成从上到下为1−n1-n1−n,从右到左为1−m1-m1−m,这样从左上到右下的一条斜线上的点的横纵坐标的和是一样的,就可以用FFTFFTFFT来解决,斜着的只要记一下就行了,横和竖都可以用斜着的那种方法来计算emmm这样说可能不太清楚一看代码就懂了#include<iostream>#include<c...

2018-12-03 15:53:45 216

原创 【FWT】题目总结

之前做过的FWTFWTFWT的题好多都没写博客一块写一下不会FWTFWTFWT的话请右转讲解部分板子上面也有,下面是一些不那么裸的题(其实还是很裸的)CF662C 我做的第一道FWTFWTFWT把矩阵压缩成mmm个二进制数,可以枚举2n2^n2n表示要反转那些行,发现反转其实就是把那些二进制数异或上当前反转集合iii,假设d(x)d(x)d(x)表示二进制数xxx中min(cnt1,cnt...

2018-12-03 11:25:01 795 1

原创 【模板】多项式乘除取模,开方,求逆元,对数

证明什么的这个博主写的很详细了这里只给出代码多项式乘,除(取模),求逆元:例题–luoguP4512#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#d

2018-12-03 00:10:00 653

原创 后缀数组--luoguP2408 不同子串个数

传送门求本质不同的子串个数,是HDU4622的弱化版方法也是求出hhh数组,以排名为顺序遍历每个后缀,让ans+=ans+=ans+=后缀长度−-−它和之前所有后缀的lcplcplcp代码如下:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#...

2018-12-02 21:26:12 201

原创 LCT(维护边双)--bzoj1969: [Ahoi2005]LANE 航线规划

传送门用LCTLCTLCT维护边双,删边不好操作,可以离线后变成加边。如果两个点u,vu,vu,v已经联通,再加一条(u,v)(u,v)(u,v)的边就会让它变成边双,所以可以用并查集维护联通性。当一条链变成边双就把它在LCTLCTLCT上缩成一个点,具体的可以直接在splaysplaysplay上dfsdfsdfs把所有点的父亲都修改成一个点,而做其他操作如splaysplaysplay和...

2018-12-02 19:06:32 294

原创 FFT+容斥--bzoj3771: Triple

传送门分别把val,val∗2,val∗3val,val*2,val*3val,val∗2,val∗3算一遍FFTFFTFFT代表选一个的选两个的和选三个的,但是会算重,所以考虑容斥式子在代码里#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#inclu...

2018-12-02 17:06:34 178

原创 长链剖分(学习笔记)

很久很久以前erkkierkkoerkkierkkoerkkierkko给我们分享了一下这个东西,好像和dsu on treedsu\ on\ treedsu on tree的思想很像,都是长链直接转移,短链暴力算其中有一个很有意思的东西就是指针动态分配数组空间,因为一个儿子的信息刚好是父亲往左或者往右移一步,比如说深度,如果一个dpdpdp数组是以深度为...

2018-12-02 14:57:53 308

原创 分块FFT--bzoj3509: [CodeChef] COUNTARI

传送门给定一个长度为N的数组A[],求有多少对i, j, k(1<=i<j<k<=N)满足A[k]-A[j]=A[j]-A[i]。暴力的话就考虑枚举jjj,然后算两边的可以用FFTFFTFFT来算,但这样复杂度是n∗mx∗logmxn*mx*logmxn∗mx∗logmx,优化的话就可以用分块,而且块不能太小,然后块外用FFTFFTFFT,块内就暴力。注意卡常被卡了...

2018-12-02 14:39:54 486

原创 【概率期望】题目总结

今天讲了讲数学,期望这做了四道题,一块写个博客记一下CF540D Bad Luck Island容易想到设f[i][j][k]f[i][j][k]f[i][j][k]表示剩下iii个rrr,jjj个sss,kkk个ppp时候的概率,然后枚举遇见的是哪两种人,算一下概率就好了,但算的时候注意不能直接算,因为同种的人不能遇见,所以要减掉#include<iostream>#incl...

2018-12-02 00:45:30 528

原创 矩阵树定理--luoguP4208 [JSOI2008]最小生成树计数

传送门以前用dfsdfsdfs做的,用基尔霍夫矩阵真的玄啊首先这道题有这么几个定理:(来自Z-Y-Y-S的博客)定理一:如果 A,BA, BA,B 同为 GGG 的最小生成树,且 AAA 的边权从小到大为 w(a1),w(a2),w(a3),⋯w(an)w(a_1), w(a_2), w(a_3), \cdots w(a_n)w(a1​),w(a2​),w(a3​),⋯w(an​),BBB ...

2018-12-01 00:11:51 161

空空如也

空空如也

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

TA关注的人

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