随笔分类 - 数学—FFT
摘要:想了好长时间最后发现真是石乐志 第一反应就是两边之和大于第三边,但是这个东西必须要满足三次…… 任意的两边之和合通过生成函数套路+FFT求出来(记得去掉重复选取的),然后这任意两边之和大于任意第三边可以用一个前缀和求得(同样记得去重,前缀和里面一定包含前两条边),这样我们就得到了任意两边之和大于任意
阅读全文
摘要:考虑正难则反,我们计算所有对称子序列个数,再减去连续的 这里减去连续的很简单,manacher即可 然后考虑总的,注意到关于一个中心对称的两点下标和相同(这样也能包含以空位为对称中心的方案),所以设f[i]为下标和为i的对称中心一共有多少对相同字符,这样总答案就是\\( \sum_{i=0}^{2
阅读全文
摘要:和bzoj 4503 https://www.cnblogs.com/lokiii/p/10032311.html 差不多,就是再乘上一个原串字符 有点卡常,先在点值下算最后一起IDFT cpp include include include include using namespace std;
阅读全文
摘要:真实脑洞题 因为通配符所以导致t串实际有指数级别个,任何字符串相关算法都没有用 考虑一个新的匹配方法:设a串(模板串)长为n,从m串的i位置开始匹配:\\( \sum_{i=0}^{n 1}(a[j] b[i+j])^2a[j] \\) 这个东西只有在从i开始的长为n的a串子串与b串完全匹配的时候才
阅读全文
摘要:瞎搞居然1A,真是吃鲸 n的范围只有聪明人能看见……建议读题3遍 首先看计数就想到生成函数,列出多项式A(x),然后分别考虑123 对于选一个的直接计数即可; 对于选两个的,\\( A(x)^2 \\),然后注意这里两个选一样的是不合法的,各出现了一次,所以减掉,然后这里是有顺序的,所以最后再除以2
阅读全文
摘要:记得FFT要开大数组!!开到快MLE的那种!!我这个就是例子TAT,5e5都RE了 在这题上花的时间太多了,还是FFT不太熟练。 首先看70分的n方做法:从0下标开始存,先n ,把a数组倍增,然后枚举a数组的起点st(相当于环上a的st和b的0相匹配),设x为增量 $$ \sum_{i=0}^{n}
阅读全文
摘要:大力推公式,目标是转成卷积形式:\\( C_i=\sum_{j=1}^{i}a_jb_{i j} \\) 首先下标从0开始存,n $$ F_i=\frac{\sum_{ji}\frac{q_jq_i}{(j i)^2}}{q_i} $$ $$ F_i=\sum_{ji}\frac{q_j}{(j i
阅读全文

浙公网安备 33010602011771号