
FFT
ACM败犬
这个作者很懒,什么都没留下…
展开
-
gym 101667 : H Rock Paper Scissors (FFT 求字符串最大相似度)
题目大意:两个人在玩石头剪刀布游戏,你知道另外一个人长度为n的策略序列以及你自己的机器的长度为m的策略序列,你可以从任意一个点开始连续出m轮,问你最多能赢几次。 如果将某一个串变一下,就是两个串的匹配,求最大相似度。但两个串的长度都是 10510 ^ 5105,暴力搞不了。 FFT解法:由于只有三种字母,可以分别枚举每个字母,求所有位置开始匹配该字母的贡献,求三遍,将答案相加取最大值。 一个字母从...原创 2019-07-03 23:10:43 · 291 阅读 · 0 评论 -
bzoj 3160 : 万径人踪灭 (FFT + 马拉车)
题目大意:在一个字符串序列中,求有多少个不连续的回文子串 (整体不能全部连续,这个子串的部分可以连续). 初次学FFT对这种题是完全懵逼的,感谢大佬的题解: https://blog.youkuaiyun.com/popoqqq/article/details/42193259 答案可以用所有的回文串扣掉连续的回文串,连续的回文串可以用马拉车O(N)求出。 所有回文串:设 F[i] 为 以第i个字母为对称中心...原创 2019-07-04 10:16:43 · 144 阅读 · 0 评论 -
Educational Codeforces Round 40 : I - Yet Another String Matching Problem (FFT + 并查集)
题目链接:https://codeforces.com/contest/954/problem/I 题目描述:有两个串S,T,你可以执行一种操作:选择两个字符a,b,将两个等长串内的字符a变成字符b。定义使得两个等长的串相同的操作次数为两个串的距离,让你求S中所有子串和T的子串的最短距离。 题解:考虑一般解法,将S的子串和T对应位置的字符连起来,构成一张无向图,这个无向图只有6个点(只有6种字符...原创 2019-07-09 19:50:26 · 172 阅读 · 0 评论 -
HDU 4609 : 3-idiots (FFT + 思维)
题目大意:有n条边,问随机选3条边能构成一个三角形的概率是多少。 分析:能构成三角形的条件就是最长的边边长小于两条较短的边边长之和,从这个角度出发,答案的方案数可以为:枚举每一条边作为最长边,算出选较短的两条边其边长之和大于这条边的方案数,每条边的方案数加起来 除去 所有的选边方案即是答案。 设 num[i]num[i]num[i] 为 边长之和为 iii 的方案数,主要是如何计算出 num[i...原创 2019-07-09 20:29:50 · 326 阅读 · 0 评论 -
Codeforce 1096 G:Lucky Tickets(FFT \ NTT)
题目大意:一个长为 n 的数字串,n 一定是偶数,其中只包括 k 种数位,每种数位的范围是(0−90 - 90−9),允许这个数字串有前导零,如果这个数字串的前半串的数位和与后半串的数位和相等,那么称这个数字串为幸运串,在给定k种数位的情况下,问有多少种长度为 n 的 幸运串。 分析:做的时候基本上想到了正解,首先看怎么得到答案:数字串的前半串和后半串是独立的,若已知前半串长为 n2\frac{n...原创 2019-08-17 19:08:26 · 244 阅读 · 0 评论 -
2019 上海网络赛 C. Triple (FFT + 暴力)
题目大意:如果对Ai,Bj,CkA_i ,B_j,C_kAi,Bj,Ck排序,使得Ai,Bj,CkA_i ,B_j,C_kAi,Bj,Ck恰好是升序,要满足的条件为:Ck−Bj≥AiC_k - B_j \geq A_iCk−Bj≥Ai,这个定义类似于从A,B,CA,B,CA,B,C数组中各取一个数,使得能构成三角形,但是注意这里是可以等于的。 对于这种题有一个FFT的做法:通...原创 2019-09-17 20:44:04 · 246 阅读 · 0 评论 -
2019 南昌网络赛 D. Interesting Series(生成函数 + 分治 + FFT)
代码: #include<iostream> using namespace std; #include<stdio.h> #include<string.h> #include<algorithm> #define double long double typedef long long ll; const double pi = acos(...原创 2019-09-19 21:11:34 · 281 阅读 · 0 评论