【关于后缀数组枚举长度并左右扩展思路的理解】
前几天做了一下优秀的拆分内道题...脑洞开了一个小时结果并无卵用...向Claris的题解低头
今天想肝一下bzoj 2119 股市的预测,结果又脑洞一个半小时还是没有卵用...向zyf2000的题解低头
总的来说,这两道题都属于后缀数组枚举单位长度并左右扩展的思路。
优秀拆分是求形如AABB的子串的个数,股市预测是求形如ABA(B的长度给定)的子串的个数。
核心就在于,枚举A的长度L,找出len/L个关键点,并左右扩展。扩展要求是扩展出的子串不能覆盖到另一个关键点且必须覆盖当前关键点。
具体实现我也不贴代码了...网上很多,写一下这个帮助大家理解。(说不定只有我不理解qwq)
【FFT】
左看右看上看下看。不会。就是不会。
所以说我决定把FFT学成半个黑箱(真的很难懂啊QAQ)
我们把这种东西叫做卷积。
可以说,FFT就是用来快速求出卷积的东西。
FFT好像有一类问题和字符串匹配问题挂钩...有一种构造的套路:翻转模式串并平方卷积
【后缀自动机】
醉了看了一遍构造方法其实几乎还是完全不懂SAM是个啥鬼。
推荐 http://download.csdn.net/detail/acvay/8950959(2015国家集训队论文)
还有...如果要在parent树上搞事情,配合基数排序食用效果更佳...
如果是广义后缀自动机...那么基数排序就GG了...(还是不太能理解广义)
【容斥】
有一类比较奇葩的容斥要倒着考虑...
比如说 HNOI 2008 硬币购物
【mobius反演】
其实我之前压根就是半懵逼状态学的莫比乌斯反演...
这里给大家说一个比较重要的公式 : sigma(i:1~N) sigam(j:1~M) [gcd(i,j)==1] 可以转化为 sigma(d:1~min(N,M)) miu[d]*(N/d)*(M/d)
有了这个公式基本可以打遍天下...?(别妄想了)
发现一个很难受的东西:每次反演完了不会线性筛...WOC GG了。
【CDQ】
这个东西还是写成CDQ(l,mid),CDQ(mid+1,r)放在最后比较好,比较清晰。而且也不用瞎比处理。以前抄的模板真的不太好啊QAQ
【FWT】
快速我二婶变换。
http://blog.csdn.net/liangzhaoyang1/article/details/52819835