FFT
616156
赛高______↑
展开
-
【FFT】Triple Sums
分析:如果不考虑取值相同,本题就非常简单了,直接用AxAxA_x表示为值为xxx的数量,然后求A3A3A^3即可。 现在要考虑取值相同,很显然,如果是两个值取值相同的情况,这种情况会出现3次,如果是三个值都相同的情况,则会出现一次。所以,首先求A3A3A^3,再设一个多项式B,其中BxBxB_x表示x2x2\frac x 2出现的次数。 求出A×BA×BA\times B最后设一个...原创 2018-06-22 22:23:26 · 250 阅读 · 0 评论 -
【FFT】HDU4609 3-idiots
分析:要求的就是Ax+Ay−Az≤0Ax+Ay−Az≤0A_x+A_y-A_z\leq 0的方案数 只要x≠yx≠yx≠y,就能保证如果满足条件,则选择一定合法(即x≠y,y≠z,x≠zx≠y,y≠z,x≠zx≠y,y≠z,x≠z)所以只需要令AxAxA_x表示xxx出现的次数,然后求出A2A2A^2设一多项式BxBxB_x表示x2x2\frac x 2出现的次数A2−BA2−B...原创 2018-06-22 22:28:22 · 84 阅读 · 0 评论 -
【FFT】UVa12633 Super Rooks on Chessboard
分析:如果忽略斜向的情况,那么这道题就很简单了: 求出所有没被覆盖的行数,以及所有没被覆盖的列数,乘起来就是没被横向和纵向覆盖的格子总数。 现在考虑斜向的情况,如果没有被横向和纵向的干扰,那么每一条斜线覆盖的点数都是可计算的。但由于横向与纵向的存在,所以要加回来它们也覆盖的位置(因为被重复计数了)。用一个多项式AxAxA_x表示第x行是否被覆盖(被覆盖为0,未被覆盖为1) 用一个多项...原创 2018-06-23 13:57:53 · 123 阅读 · 0 评论 -
【NTT】BZOJ3992序列统计
分析:这道题与其他题目的最大区别,在于这里变成了累乘,而不是累加。这样就不能直接用NTT搞了。所以要转化一下问题:引入原根。原根的一大性质就是,若对于一个质数p,其一个原根为g 则g0,g1,g2,……gp−2(mod p)g0,g1,g2,……gp−2(mod p)g^0,g^1,g^2,……g^{p-2}(mod\space p)构成了p的一个既约剩余系(...原创 2018-06-24 22:11:12 · 167 阅读 · 0 评论 -
【FFT】UVALive4671 K-neighbor substrings
分析:这道题巧用了卷积的性质。使用FFT来实现字符串匹配。 是一种高效的匹配方式,但缺陷在于,其必须按照每种字符分别匹配,有多少种字符,就要匹配多少次。如果把模式串翻转,然后依次把某一字符设为1,其他字符设为0,此时做一次卷积,得到的结果AxAxA_x就表示以x为终点匹配的字符数。然后这道题需要字符串hash来判重,本来很经典的一道题这样一来就有点画蛇添足了。#include...原创 2018-06-24 22:41:35 · 133 阅读 · 0 评论 -
【FFT】Codeforces954I Yet Another String Matching Problem
分析:又是一道经典的FFT做字符串匹配的问题。 题目要求做一定次数的操作,使得最终所有相匹配的字符一样。可以将这个字符映射到一个图上,如果这种匹配情况下有一个字符xxx匹配的是yyy,那么就在图中xxx点向yyy点连一条边。最终图中的每个联通块的大小-1就是操作次数。(其实可以用并查集实现,操作次数就是并查集中的合并次数)所以枚举每一种匹配关系,比如如果考虑xxx字符与yyy字符匹配...原创 2018-06-24 22:49:00 · 284 阅读 · 0 评论 -
【分块】【FFT】CodeChef COUNTARI Arithmetic Progressions
分析:主要就是分块。。。首先,假设我们将原序列分为k块,对于任意一个三元组,如果三个都在同一个块内,或者两个在一个块内,都可以在O(Nk×Nk×k)=O(N2K)O(Nk×Nk×k)=O(N2K)O(\frac N k \times \frac N k\times k)=O(\frac {N^2} K)的复杂度内解决。现在考虑只有三个值在不同的块的情况。这样对于同一个块,可以把...原创 2018-06-24 22:59:57 · 229 阅读 · 0 评论 -
【CDQ分治】【FFT】【DP】【最短路】CodeForces553E Kyoya and Train
分析:首先,很容易想到一个会T的DP:定义f(i,j)f(i,j)f(i,j)表示在i号点,用了j单位时间,到达目的地的最小期望代价。转移很显然:f(i,j)=min{Costi−>v+∑f(v,j+k)∗Pi−>v,k}f(i,j)=min\{Cost_{i->v}+\sum f(v,j+k)*P_{i->v,k}\}f(i,j)=m...原创 2018-12-25 09:21:21 · 262 阅读 · 0 评论 -
【点分治】【FFT】2019雅礼集训 bracket
题目:分析:太过套路这里就简单说说显然,当询问数k很小时,就是个裸的点分治题。现在k变大了。那就FFT算贡献。#include<cstdio>#include<cstring>#include<cmath>#include<vector>#define SF scanf#define PF printf#define MAX...原创 2019-01-12 11:02:41 · 282 阅读 · 0 评论