
FFT
文章平均质量分 51
ypxrain
这个作者很懒,什么都没留下…
展开
-
【bzoj2179】FFT快速傅立叶
Description给出两个n位10进制整数x和y,你需要计算x*y。Input第一行一个正整数n。 第二行描述一个位数为n的正整数x。 第三行描述一个位数为n的正整数y。Output输出一行,即x*y的结果。Sample Input1 3 4Sample Output12数据范围:n<=60000分析看题目可知,这是一道裸的快速傅立叶变换,先对第一个数做一次DFT,再对第二个数做一次DFT然原创 2016-12-24 11:20:42 · 389 阅读 · 0 评论 -
BZOJ 5217: [Lydsy2017省队十连测]航海舰队
DescriptionByteasar 组建了一支舰队!他们现在正在海洋上航行着。海洋可以抽象成一张n×m 的网格图,其中有些位置是“ .”,表示这一格是海水,可以通过;有些位置是“#”,表示这一格是礁石,不可以通过;有些位置是“o”,表 示这一格目前有一艘舰,且舰离开这一格之后,这一格将变为“.”。这些“o” 表示Byteasar 的舰队,他们每天 可以往上下左右中的一个方向移动一格,...原创 2018-04-07 13:27:12 · 431 阅读 · 0 评论 -
CS Academy Round 75 Permutations NTT
题目给一个正整数n和询问数q,每次询问给出两个数x和y,问有多少长度为n的排列P满足: py=maxni=1pipy=maxi=1npip_y=max_{i=1}^np_i 2px<py2px<py2p_xans(y)=∑i=1n⌊i−12⌋Cy−2i−2(y−2)!(n−y)!ans(y)=∑i=1n⌊i−12⌋Ci−2y−2(y−2)!(n−y)!ans(y)=\sum_...原创 2018-04-07 09:42:51 · 170 阅读 · 0 评论 -
hdu 6036 Division Game
题意有k堆花,编号为1到k-1,每堆花都是完全一样的且包含n朵花,分成m种颜色,每种颜色有sisi朵花。现在要进行操作,第i轮操作可以在第(i-1) mod k堆花中取走任意朵。当有一堆花被取完后游戏结束。问对于每一堆花,有多少种不同的操作可能使得游戏在该处结束。NTT模数。 n<=100000,m,k<=10分析随便容斥一下就会变成卷积,然后就会变成ntt...原创 2018-04-07 21:21:47 · 202 阅读 · 0 评论 -
BZOJ 3160: 万径人踪灭
题意 给定一个由’a’和’b’构成的字符串,求不连续回文子序列的个数。题解正难则反我们考虑容斥。对于连续的回文字串显然是一次马拉车就可以很好的求出来的,那我们设f[i]表示以i为中心的对称字符对数量,显然答案就是∑2∗n+112f[i]−1\sum_1^{2*n+1}2^{f[i]-1}那么我们的问题就转变成了怎么求出f[i] 我们考虑当这个字符为a的时候做一遍fft,为b的时候再做一遍就好代码原创 2017-11-06 21:49:15 · 235 阅读 · 0 评论 -
BZOJ 4503: 两个串
Description兔子们在玩两个串的游戏。给定两个字符串S和T,兔子们想知道T在S中出现了几次, 分别在哪些位置出现。注意T中可能有“?”字符,这个字符可以匹配任何字符。Input两行两个字符串,分别代表S和TOutput第一行一个正整数k,表示T在S中出现了几次 接下来k行正整数,分别代表T每次在S中出现的开始位置。按照从小到大的顺序输出,S下标从0开始。Sample Inputbbaba原创 2017-04-14 15:32:57 · 492 阅读 · 0 评论 -
BZOJ 2194: 快速傅立叶之二
Description请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5。 a,b中的元素均为小于等于100的非负整数。 Input第一行一个整数N,接下来N行,第i+2..i+N-1行,每行两个数,依次表示a[i],b[i] (0 < = i < N)。Output输出N行,每行一个整数,第i行输出C[i-1]。 Sample I原创 2017-03-23 21:06:09 · 313 阅读 · 0 评论 -
CODEVS 3123 高精度练习之超大整数乘法
题目描述 Description给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过100000位。输入描述 Input Description读入两个用空格隔开的正整数输出描述 Output Description输出A*B的值样例输入 Sample Input4 9样例输出 Sample Output36数据范围及提示 Data Size & Hint两个正整数的位数不超过100000位原创 2017-03-17 21:07:07 · 595 阅读 · 0 评论 -
FFT系列 复数
因为我发现网上关于FFT的教程都比较那啥,于是乎决定自己写一篇,也算是方便以后复习,于是便有了这个系列。 本文是关于FFT所需要用到的有关复数的知识,旨在为今后FFT的学习铺路n次单位复数根是满足ωn\omega^n=1的复数根ω\omega。n次单位复数根恰好有n个:对于k=0,1,…,n-1,这些跟恰好就是e2πi/ne^{2\pi i/n}。 为了证明这个东西,我们引入一下复数根的指数形式原创 2017-01-28 11:24:19 · 4845 阅读 · 0 评论 -
Codeforces 960G Bandit Blues
题意定义序列中的一个数为前缀最大值仅当其前面没有比他大的数,后缀最大值同理。问有多少个长度为n的排列满足前缀最大值数量恰好为a,后缀最大值数量恰好为b。分析稍稍推一下式子就可以发现分治NTT是可以解决滴代码#include <bits/stdc++.h>const int N = 200005;const int MOD = 998244353;...原创 2018-04-20 21:50:27 · 463 阅读 · 0 评论