FFT/NTT/FMT/FWT
文章平均质量分 68
快速傅里叶变换FFT, 快速沃尔什变换 FWT ,快速莫比乌斯变换 FMT, 快速数论变换 NTT
Jozky86
这个作者很懒,什么都没留下…
展开
-
CF662C Binary Table
CF662C Binary Table题意:有一个 n 行 m 列的表格,每个元素都是 0/1 ,每次操作可以选择一行或一列,把 0/1 翻转,即把 0 换为 1 ,把 1 换为 0 。请问经过若干次操作后,表格中最少有多少个 1n<=20,m<=1e5题解:参考洛谷题解第一篇,讲的太详细了因为行很小(n<=20),列很大(m<=1e5),因为我们可以考虑枚举反转了哪些行。设X表示翻转了哪些行(X是一个整数,其二进制表示翻转的状态)对于任意一列,设第i列的状态为SiS原创 2021-10-27 21:51:24 · 191 阅读 · 0 评论 -
Tree Cutting HDU - 5909
Tree Cutting HDU - 5909题意:一个无根树,n个点,n-1条边,每个节点有一个权值,一棵树的权值就是其节点(包含本身及其子节点)的权值的异或和;求价值为[0,m)的树有多少颗?(所谓的树其实就是原连通图的任意子图)n<=1000m<=2102^{10}210题解:不难想到树形dp设dp[u][i]表示以u节点为根的价值为i的树的数量能得到转移方程:dp[u][j⨁k]=dp[u][j⨁k]+dp[u][j]∗d[v][k]dp[u][j\bigoplus k原创 2021-10-27 20:43:01 · 165 阅读 · 0 评论 -
BZOJ4589. Hard Nim
BZOJ4589. Hard Nim题意:Claris和NanoApe在玩石子游戏,他们有n堆石子,规则如下:Claris和NanoApe两个人轮流拿石子,Claris先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜。不同的初始局面,决定了最终的获胜者,有些局面下先拿的Claris会赢,其余的局面Claris会负。Claris很好奇,如果这n堆石子满足每堆石子的初始数量是不超过m的质数,而且他们都会按照最优策略玩游戏,那么NanoApe能获胜的局面有多少种。原创 2021-10-27 18:08:59 · 208 阅读 · 0 评论 -
FWT(快速沃尔什变换)
待更。。原创 2021-10-23 16:48:30 · 2049 阅读 · 0 评论 -
P3321 [SDOI2015]序列统计(未解决)
P3321 [SDOI2015]序列统计题意:题解:参考题解:题解 P3321 【[SDOI2015]序列统计】【LG3321】[SDOI2015]序列统计神仙题。。代码:原创 2021-10-26 21:54:00 · 144 阅读 · 0 评论 -
CF993E Nikita and Order Statistics
CF993E Nikita and Order Statistics题意:给你一个数组 a1∼na_{1 \sim n}a1∼n,对于 k=0∼nk = 0 \sim nk=0∼n,求出有多少个数组上的区间满足:区间内恰好有 k 个数比 x 小。 x 为一个给定的数。n≤2×105n \le 2 \times 10^5n≤2×105−1e9<=ai<=1e9-1e9<=a_i<=1e9−1e9<=ai<=1e9题解:因为x是常数,也就是说对于每个数只有贡献原创 2021-10-26 21:02:15 · 147 阅读 · 0 评论 -
FFT/NTT/FMT/FWT题目
快速傅里叶变换FFThdu4609 3-idiots快速沃尔什变换 FWT快速莫比乌斯变换 FMT快速数论变换 NTT原创 2021-10-26 17:53:47 · 139 阅读 · 0 评论 -
P4245 【模板】任意模数多项式乘法(NTT)
题意:P4245 【模板】任意模数多项式乘法题解:NTT模板,记录一下代码:#include <bits/stdc++.h>using namespace std;#define REP(i, a, b) for (int i= (a), _end_= (b); i < _end_; ++i)#define debug(...) fprintf(stderr, __VA_ARGS__)#define mp make_pair#define x first#defi原创 2021-08-19 13:40:52 · 246 阅读 · 0 评论 -
P2000 拯救世界
P2000 拯救世界题意:为了拯救世界,小 a 和 uim 决定召唤出 kkksc03 大神和 lzn 大神。根据古籍记载,召唤出任何一位大神,都需要使用金木水火土五种五行神石来摆一个特定的大阵。而在古籍中,记载是这样的:kkksc03 大神召唤方法:金神石的块数必须是 6 的倍数。木神石最多用 9 块。水神石最多用 5 块。火神石的块数必须是 4 的倍数。土神石最多用 7 块。lzn 大神召唤方法:金神石的块数必须是 2 的倍数。木神石最多用 1 块。水神石的块数必须是 8 的倍数原创 2021-09-11 12:42:41 · 205 阅读 · 0 评论 -
hdu4609 3-idiots
hdu4609 3-idiots题意:给出n个木棍以及它们的长度,求取其中三根长度各不相同的木棍组成三角形的概率题解:三角形满足条件:任意两边之和大于第三边我们设多项式A(x),其中Cixi(Ci是系数)C_ix^i(C_i是系数)Cixi(Ci是系数)表示长度为i的木棍个数是CiC_iCi。那么多项式A(x)∗A(x)A(x)*A(x)A(x)∗A(x)中xix^ixi前面的系数表示用两根木棍拼成长度为i的木棍的方案数,多项式相乘利用FFT加速O(nlogn)对于两根木棍拼成的长度i,原创 2021-10-26 17:47:32 · 113 阅读 · 0 评论 -
P4173 残缺的字符串
P4173 残缺的字符串题意:有A,B两个串,每个串都有通配符,问A为模板串,对于 B 的每一个位置 i,从这个位置开始连续 m 个字符形成的子串是否可能与 A 串完全匹配?题解:我们定义两个字符串S,T的距离为:dis(S,T)=∑i=1n−1(Si−Ti)2∗Si∗Ti\sum_{i=1}^{n-1}(S_{i}-T_{i})^2*S_{i}*T_{i}∑i=1n−1(Si−Ti)2∗Si∗Ti当T中以i结尾的串与S能匹配的条件为:dis(S,Ti−m+1,i)=0dis(S,T原创 2021-08-24 01:35:05 · 247 阅读 · 0 评论 -
FFT的多种应用
参考文章FFT可以在nlogn的时间内实现n次多项式F(x)和m次多项式G(x)的卷积ck=∑i+j=kaibj=∑i=0kaibk−ic_{k}=\sum_{i+j=k}a_{i}b_{j}=\sum_{i=0}^{k}a_{i}b_{k-i}ck=∑i+j=kaibj=∑i=0kaibk−i基本形式:对于类似:∑i+j=N+kaibj\sum_{i+j=N+k}a_{i}b_{j}∑i+j=N+kaibj的式子,可以直接用FFT计算例题:P3723 [AH2017/HNOI原创 2021-08-24 00:15:05 · 1397 阅读 · 0 评论 -
Hash Function
Hash Function文章目录题意:题解:代码NTT代码FFT代码题意:给定n个互不相同的数,找一个最小的模域,使得它们在这个模域下互不相同。n<=5e5题解:考虑两个数a和b,a与b模m余数相同,当且仅当|a-b|能被m整除。这样问题就转化成找到一个最下的m,使得m不是任意一个|ai-aj|约数(不会被m整除)n<=5e5,所以直接暴力n2肯定不行这时就要用到FFT/NTT加速算N个数两两之差当然用FFT,利用多项式相乘即指数相加来做,(加减用指数,相乘用系数)刚接触F原创 2021-07-21 16:33:43 · 176 阅读 · 0 评论
分享