
FFT
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
CodeChef PRIMEDST Prime Distance On Tree
https://www.codechef.com/problems/PRIMEDST5e4以下的质数有5000多个,nlogn*5000直接没了,所以不能对于每一个点枚举所有质数,即使加了剪枝也不行那么我们想到要计算本身和本身相加的和 的方案数,而且本题的边长都是1,所以质数的范围也与当前分治的子树的点数有关,最大的dep为mxdep,那么寻找的质数就不用超过2*mxdep了,所以可以ff...原创 2020-01-14 09:31:37 · 202 阅读 · 0 评论 -
Kattis - aplusb FFT 板题
吧a数组的值当多向式的系数,跑fft,就可以知道某一个值有多少种另外两个值组成他的方案i,j,k不能相同,那么对于每一个ai+ai=aj,先减掉再说ai+0=ai , 0+ai=ai, 那么不管这个ai是否是0,aj=0时会造成不合法情况,那么对于每一个aj=0,由于已经保证i!=j,那么会使得1-n中除j之外的所有ai都多算两种不合法情况,即2*(n-1)种情况,那么一共就多出2*nu...原创 2019-01-23 18:47:22 · 168 阅读 · 0 评论 -
SPOJ-Triple Sums 3个不同位置的数字之和 fft
WA了一晚上,不知道为撒然后今天下午换了种方法,又调了一个小时,最后发现fft的len搞错了。。。算出3次项的fft可以直接x1[i]=x1[i]*x1[i]*x1[i];这中间包括i=j=k的情况,和i=j || j=k || i=k的情况是非法的,直接ans3[3*(a[i]+M)]吧第一种非法情况去掉第二种非法情况用x2[2*(a[i]+M)]和x1进行fft,那么就能得出2*a...原创 2019-01-24 17:14:45 · 217 阅读 · 0 评论 -
HDU4609 3-idiots fft
辣鸡的我写一题看一题题解,计数是大弱项。。。总是想不清楚求所有ai+aj方案数,进行fft,得到num[0...len]去掉i=j的情况,所有num[a[i]*2]--;由于i,j顺序不考虑,所有num[i]/=2然后对a数组排序,从1...到n枚举ai,把ai看做最大的边(1)ans+=sum[len-1]-sum[a[i]],因为把ai看做最大边,那么要找有多少种2边之和大于a...原创 2019-01-24 22:41:05 · 224 阅读 · 0 评论 -
HDU1402 FFT板题
FFT能够快速解决卷积的问题,而这里的高精度乘法恰好就是这样,于是抄了个模板。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define maxl 200010using namespace std;int len1,len2,len;i...原创 2019-01-23 15:10:16 · 157 阅读 · 0 评论