
FFT
文章平均质量分 79
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ4503 两个串
orz xuruifan发discuss问题解……题解可以看这题discuss至于如何用FFT算卷积,我们写一下高精乘,用字母代表每一位,发现乘完了其实就是卷积的形式#include#include#include#include#include#include#include#include#include#include#include#include原创 2016-04-30 13:49:36 · 1701 阅读 · 0 评论 -
BZOJ3771 Triple
这真是个悲伤的故事第一次看完题我笑了半天23333还有就是要认真读题,题里说河神会拿一个,两个,或三个斧子,这并不是什么象征意义,而是确实只是会拿一个,两个或者三个……这样的话我们把生成函数A搞出来发现不能A+A^2+A^3直接搞,因为有拿重的我们设B为把斧子的价值都乘2的生成函数,C为都乘3的生成函数(也就是一起拿两把和三把)手动容斥一下,答案为A+(A^2-B)/2+(原创 2016-05-26 20:07:46 · 1396 阅读 · 0 评论 -
BZOJ3160 万径人踪灭
对于每个可以作为对称轴的位置,我们算出以其为对称轴有多少对位置和字符是对称的,设为t[i],若不考虑不能连续,则我们可以从这t[i]对里任选出来任意对,都是可行的答案,且不重不漏,所以不考虑不能连续的情况的答案为sigma 2^t[i]-1,考虑不能是连续子串,再减去回文子串的数量即可回文子串数量manacher求就可以了考虑一下,如果两个位置和字符a[i]和a[j]关于第x个位置对称原创 2016-07-02 10:17:50 · 619 阅读 · 0 评论 -
BZOJ3451 Tyvj1953 Normal
由期望的线性性(日常%xuruifan)答案等于每个点的期望被算的次数之和,考虑每个点x会被算多少次,首先最开始肯定会被算一次,而如果另一个点y被选中了,并且x到y的路径上没有别的被选中的点,即y是x到y路径上第一个被选中的点,那么答案会+1每个点作为路径上第一给被选中的点的概率是一样的,所以答案是sigma 1/dis(i,j)(注意点对是有序的)所以求出每个长度的路径的条数就可以了原创 2016-09-06 22:05:07 · 1477 阅读 · 0 评论 -
BZOJ3509 [CodeChef] COUNTARI
考虑分块FFT对位置分块,那么对两边的权值生成函数可以做FFT,那么块里的权值*2的位置就可以加到答案上这样算出来的是3个都不在一块内的有在一块内的暴力即可暴力的技巧要好,要不然就会被卡常数-_-原创 2017-03-22 10:21:48 · 846 阅读 · 1 评论 -
BZOJ4836 [Lydsy2017年4月月赛]二元运算
如果只是求x+y=c的对数可以直接fft预处理每个c的答案然后O(1)出解求x-y=c就把底下那个翻转一下然后fft但是他要求在x=y的时候是x-y=c还是考虑预处理每个c的答案然后O(1)出解那么我们就考虑分治,对于权值区间[l,r],对x在[l,mid],y在(mid,r]里的做一次fft,对x在(mid,r],y在[l,mid]里的做一次fft,这样就算出了跨mid的所有数对原创 2017-04-28 11:00:01 · 1398 阅读 · 0 评论 -
BZOJ4827 [Hnoi2017]礼物
假设我们循环移动了x位,并另所有点都加了y,那么这时候的答案就是sigma (a[i+x]-b[i]+y)^2把上式展开,发现除了一项-2*a[i+x]*b[i]外,要么是常数项,要么是关于y的一次函数,都可以预处理然后O(1)算对于-2*a[i+x]*b[i],把b翻转,就是一个卷积的形式,FFT预处理即可那么枚举所有可能的x和y,然后取最小值即可#include#includ原创 2017-04-17 15:11:54 · 1635 阅读 · 0 评论