自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 【POJ 1741】Tree(树分治)

之前一段时间做的,但是因为懒所以没有写题解。有点忘了现在重新做一下,还是乖乖写题解吧~ 树分治主要的在于要找重心。对于那些需要统计满足条件的路径条数的题,我们就可以想到树分治。 对于某一个点,我们可以将答案分成经过这个点的和不经过这个点的,那么经过这个点的所有答案可以快速统计出来,剩下的就只用递归到子树中去找就好了。 还是多做题吧~ 下面是代码: #include #include #i

2015-06-30 16:44:14 380

原创 【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 433

原创 【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 830

原创 【HDU 4609】3-idiots(FFT)

这道题也是FFT的入门应用题之一了,求任意不同的三条边能形成三角形的概率。 首先我们可以先用FFT求出任意两条(可相同)的边能组成的长度的方案数。 那么现在就需要去重了,我们可以想到对于组成长度为奇数的边直接除以2即可(因为与x,y的先后顺序无关) 对于长度为偶数的,还要先减去自己与自己组成的方案数,除以2后再加回去与先后顺序无关的方案数。 具体见代码

2015-06-28 11:36:14 397

原创 【SPOJ TSUM】Triple Sums(FFT+容斥定理)

这道题是叉姐讲义的第一道题,题意要求对于所有S,三个编号互不相同的数之和等于S的方案数。 如果是没有互不相同这个要求,那么题目就非常简单,直接用FFT求出x的s次方的系数即可。 但是如果要求互不相同,那么就考虑需要用到容斥定理。三个编号互不相同的数的方案数 = 三个任意的数的方案数 - 两个数相同另一个数的方案数 + 三个数都相同的方案数。因此我们需要事先统计出两个数和三个数相同能取的所有方案

2015-06-27 16:45:11 946

原创 【HDU 1402】A * B Problem Plus(FFT)

这道题是快速傅里叶变换的最模板的题了,存个板子 #include #include #include #include using namespace std; const double pi = acos(-1.0); const int N = 200005; struct Complex{ double r,i; Complex(double r = 0,double i

2015-06-27 16:41:48 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除