FFT
文章平均质量分 78
AC_alvin
这个作者很懒,什么都没留下…
展开
-
【HDU 4609】3-idiots(FFT)
这道题也是FFT的入门应用题之一了,求任意不同的三条边能形成三角形的概率。 首先我们可以先用FFT求出任意两条(可相同)的边能组成的长度的方案数。 那么现在就需要去重了,我们可以想到对于组成长度为奇数的边直接除以2即可(因为与x,y的先后顺序无关) 对于长度为偶数的,还要先减去自己与自己组成的方案数,除以2后再加回去与先后顺序无关的方案数。 具体见代码原创 2015-06-28 11:36:14 · 377 阅读 · 0 评论 -
【ZOJ 3856】Goldbach(FFT)
题意:最多使用三个质数做加法和乘法,问得到X有多少种方案。 这道题的话分几种情况讨论清楚就好了。 1、只有一个数的情况,如果这个数是质数则方案数加1 2、有两个数的情况,可以将两个数做加法和乘法,加法的话将质数得到的数字做一遍FFT,乘法直接做sqrt(n) * sqrt(n)就好了 3、有三个数的情况,分别有三种方法,分别是a + b + c, a + b * c,a * b * c原创 2015-06-30 14:47:54 · 812 阅读 · 0 评论 -
【CodeChef COUNTARI】Arithmetic Progressions(FFT)
题意:找到一个序列中满足i 这道题可以直接用分块来做,假设每一块的大小是C,现在考虑第j块,那么可以分为三种情况 1、对于三个数都在块j中,则可以通过枚举两个数找第三个数O(C^2) 2、对于两个数在块j中,也可以通过枚举两个数找第三个数O(C^2) 3、对于只有一个在块j中,则是通过对j - 1个块和后面n - j个块做FFT,就可以得到答案。 具体见代码:#include #inc原创 2015-06-30 15:06:47 · 421 阅读 · 0 评论 -
【CodeChef PRIMEDST】Prime Distance On Tree
题意:给你一棵树,任取两点,问两点间距离为质数的概率。 若对于求树上的路径数的题,可以想到要用树分治。那么我们考虑经过一个点的方案数,可以用fft快速地求出所有方案数,然后减去来自同一颗子树的方案数,就得到了答案。#include #include #include #include #include #include using namespace std; const int N = 500原创 2015-07-01 13:19:18 · 686 阅读 · 0 评论 -
【ZOJ 3874】Permutation Graph
浙江省赛题。当时赛后听说是NTT+CDQ震惊了两个词一个都没有听说过。 现在突然想起来这个题,回来一看也并不是那么的不可做。比赛的时候还在打表找规律233~ 首先可以想到,因为逆序对都要连一条边,因此所有的对于任意一个部分都是下表连续的,否则答案就为0。 若下表连续的,则可以想到答案只与长度有关。 不妨设dp[i]为长度为i的连续下表的方案数,则可以得到 dp[i] = i! - sig原创 2015-07-29 23:50:13 · 890 阅读 · 0 评论