多项式
文章平均质量分 76
Frozen_Guardian
已退役菜鸡Acmer
展开
-
假的多项式全家桶(没有除法)
const int md=998244353,N=5e6+100,g3=(md+1)/3;int a[N],b[N];namespace poly{ int lim,rev[N],inv[N]; inline void upd(int&a){a+=a>>31&md;} inline int pow(int a,int b){ int r=1; for(;b;b>>=1,a=(LL)a*a%md)if(b&1)r=(LL)r*a%md;retu原创 2021-08-07 20:12:30 · 152 阅读 · 2 评论 -
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)- 分组(矩阵快速幂套NTT优化dp)
题目链接:点击查看题目大意:给出 nnn 个连续的小球,每次可以选择单独的一个或者相邻的两个小球分成一组,允许有剩余的小球,问恰好分成 k∈{1,2,3,⋯ ,m}k\in\{1,2,3,\cdots,m\}k∈{1,2,3,⋯,m} 组的方案数分别是多少。题目分析:设 dp[i][j]dp[i][j]dp[i][j] 为前 iii 个小球分成 jjj 组的方案数,不难推出:dp[i][j]=dp[i−1][j]+dp[i−1][j−1]+dp[i−2][j−1]dp[i][j]=dp[i-1][j.原创 2021-10-25 10:41:32 · 783 阅读 · 2 评论 -
2020ICPC沈阳 - United in Stormwind(推公式+FWT+SOSdp)
题目链接:点击查看题目大意:规定一张试卷上有 mmm 个问题,每个问题只有 A,BA,BA,B 两个选项,现在给出 nnn 张试卷。需要选择一个问题的子集,使得有大于等于 kkk 对试卷的答案是不完全相同的,问这样的子集有多少个题目分析:若将选项转换为 000 或 111,试卷视为 010101 串,那么两个试卷相同,当且仅当异或和等于 000。设 aia_iai 为第 iii 个试卷所代表的 010101 串, F(S)F(S)F(S) 为异或和等于 SSS 的 010101 串对的个数,则F(原创 2021-08-20 20:00:00 · 4335 阅读 · 1 评论 -
2021牛客多校9 - Cells(推公式+NTT)
题目链接:点击查看题目大意:初始时给出 nnn 个点,分别为 {(0,a0),(0,a1),⋯ ,(0,an)}\{(0,a_0),(0,a_1),\cdots,(0,a_n)\}{(0,a0),(0,a1),⋯,(0,an)},每次可以向下走或向左走,问到达点 {(1,0),(2,0),⋯ ,(n,0)}\{(1,0),(2,0),\cdots,(n,0)\}{(1,0),(2,0),⋯,(n,0)} 且路径不相交的方案数题目分析:有向图路径不相交方案数问题,考虑 LGVLGVLGV 定理,实质原创 2021-08-18 12:45:54 · 304 阅读 · 0 评论 -
2021HDU多校8 - 7057 Buying Snacks(矩阵快速幂套NTT优化dp)
题目链接:点击查看题目大意:给出 nnn 种糖果,每种糖果有大小包装之分,有三种购买方案,价钱分别如下:单独购买一个小的,花费一块钱单独购买一个大的,花费两块钱∀i>1\forall i>1∀i>1,可以和 i−1i-1i−1 的糖果捆绑购买,可以便宜一块钱问给出的钱在范围 [0,m][0,m][0,m] 内的不同购买方案数分别是多少题目分析:读完题不难想到最简单的 n2n^2n2 dp,dp[i][j]dp[i][j]dp[i][j] 代表前 iii 个糖果花费了 jj原创 2021-08-14 10:29:24 · 422 阅读 · 0 评论 -
2021牛客多校6 - Gambling Monster(分治FWT优化期望dp)
题目链接:点击查看题目大意:有一个转盘,每次转动得到 0∼n−10\sim n−10∼n−1(???? 是 2 的幂)的概率分别给出。最开始你有一个数 x=0x=0x=0,每次转动转盘得到一个数 yyy,如果 x⊕y>xx\oplus y>xx⊕y>x,就令 x=x⊕yx=x\oplus yx=x⊕y,否则 xxx 不变。求使 x=n−1x=n-1x=n−1,期望转动转盘的次数。题目分析:求期望,考虑倒着的概率 dpdpdp设 P[i]P[i]P[i] 为转到 iii 的概率,设原创 2021-08-13 14:25:57 · 572 阅读 · 0 评论 -
2020牛客多校2 - Exclusive OR(FWT)
题目链接:点击查看题目大意:给出 nnn 个数,可以重复选择,问选择 k∈[1,n]k\in[1,n]k∈[1,n] 个数时,最大的异或和是多少题目分析:官方题解:????了一年的题如何卷呢?令多项式 F(x)=∑i=0∞aixiF(x)=\sum\limits_{i=0}^{\infty} a_ix^iF(x)=i=0∑∞aixi 表示可达状态,初始时 ai=1a_i=1ai=1 表示数字 iii 是可达的那么设 Gk=∑i⊕j=kFi∗FjG_k=\sum\limits_原创 2021-08-11 21:01:55 · 182 阅读 · 0 评论 -
洛谷 - P4717 【模板】快速莫比乌斯/沃尔什变换 (FMT/FWT)
题目链接:点击查看题目分析:看不懂原理我爪巴了代码:// Problem: P4717 【模板】快速莫比乌斯/沃尔什变换 (FMT/FWT)// Contest: Luogu// URL: https://www.luogu.com.cn/problem/P4717// Memory Limit: 250 MB// Time Limit: 1000 ms// // Powered by CP Editor (https://cpeditor.org)// #pragma GCC opt原创 2021-08-11 20:08:04 · 260 阅读 · 0 评论 -
洛谷 - P4721 【模板】分治 FFT(分治NTT)
题目链接:点击查看题目大意:给出序列 g1,⋯ ,ng_{1,\cdots,n}g1,⋯,n,求 f0,⋯ ,nf_{0,\cdots,n}f0,⋯,n规定 fi=∑j=1ifi−jgjf_i=\sum\limits_{j=1}^{i}f_{i-j}g_jfi=j=1∑ifi−jgj,其中 f0=1f_0=1f0=1题目分析:假如将区间一分为二,不难发现左侧的区间会对右侧的区间提供贡献,所以我们不妨参考cdq分治的思路,先将左侧区间都算出答案,然后再递归进入右侧区间,每次将数组偏移一下然原创 2021-08-11 13:12:02 · 796 阅读 · 0 评论 -
2021HDU多校7 - 7054 Yiwen with Formula(分治MTT优化dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列 aaa,现在需要求∏b1<b2<⋯<bk(ab1+ab2+⋯+abk)\prod_{b_1<b_2<\cdots<b_k} (a_{b_1}+a_{b_2}+\cdots+a_{b_k})b1<b2<⋯<bk∏(ab1+ab2+⋯+abk)需要满足:1≤bi≤n1 \leq b_i \leq n1≤bi≤nb1<b2<⋯<bkb_1<b_2原创 2021-08-10 23:41:35 · 354 阅读 · 0 评论 -
洛谷 - P4245 【模板】任意模数多项式乘法(三模NTT+中国剩余定理/五次FFT的MTT)
题目链接:点击查看题目大意:给出一个长度为 nnn 的多项式 F(x)F(x)F(x) 和一个长度为 mmm 的多项式 G(x)G(x)G(x),求 F(x)∗G(x)F(x)*G(x)F(x)∗G(x),模数任意,值域 1e91e91e9题目分析:如果不取模的话极限情况下会达到 109∗109∗105=102310^9*10^9*10^5=10^{23}109∗109∗105=1023众所周知,NTT 支持值域更大的多项式相乘,但是不支持任意模数。FFT 支持任意模数,但是不支持值域很大的多项式相原创 2021-08-09 21:37:59 · 1013 阅读 · 0 评论 -
洛谷 - P3321 [SDOI2015]序列统计(原根+NTT)
题目链接:点击查看题目大意:给出一个集合 SSS,集合中的数是 [0,m)[0,m)[0,m) 且互不相同的,问从集合中选 nnn 次数字,且乘积对 mmm 取模后等于 xxx 的方案数有多少题目分析:考虑转移方程,我们设 f[i][j]f[i][j]f[i][j] 为选了 iii 个数后,乘积对 mmm 取余后为 jjj 的方案数,那么自然有 f[i+1][j]=∑ab≡j(modm)f[i][a]∗f[i][b]f[i+1][j]=\sum\limits_{ab\equiv j \pmod m}f原创 2021-08-08 13:51:40 · 429 阅读 · 0 评论 -
CodeForces - 528D Fuzzy Search(多项式匹配字符串)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串 sss 和一个长度为 mmm 的字符串 ttt,问字符串 sss 有哪些子串可以匹配 ttt。给出一个参数 kkk,TTT 在 SSS 的第 iii 个位置中出现,当且仅当把 TTT 的首字符和 SSS 的第 iii 个字符对齐后,TTT 中的每一个字符能够在 SSS 中找到一个位置偏差不超过 kkk 的相同字符。需要注意的是,在字符串 sss 中通过偏差匹配的字符可以重复与 ttt 匹配题目分析:预处理出数组 g[i][j]g[i][j]原创 2021-07-28 20:27:12 · 291 阅读 · 0 评论 -
中石油训练赛 - Cafebazaar’s Chess Tournament(FFT)
题目大意:给出 n 个队伍,每个队伍有两个属性分别记为 a 和 b ,如果队伍 i 和队伍 j 比赛:a[ i ] > a[ j ] && b[ i ] > b[ j ] :i 队伍获胜 a[ j ] > a[ i ] && b[ j ] > b[ i ] :j 队伍获胜 其余情况全部平局获胜加一分,平局加 0.5 分,失败不扣分现在有一个新加入的队伍,让这个队伍和已有的 n 支队伍互相比赛,该队伍的属性可以在比赛前设置为 n 支队伍..原创 2020-09-26 21:32:58 · 264 阅读 · 0 评论 -
洛谷 - P3803 【模板】多项式乘法(FFT/NTT)
题目链接:点击查看题目大意:给出两个多项式 F( x ) 和 G( x ) 的系数,求其卷积后的系数题目分析:存一个FFT的模板,原理学不明白,数论和dp都扔给队友了,当个快乐的fw借用zx学长模板中的代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmath>#include<cstring>#inc原创 2020-09-26 20:48:47 · 354 阅读 · 0 评论 -
2021牛客多校1 - Hash Function(思维+FFT)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,现在要求找到一个 seedseedseed,使得所有数字变为 a[i]=a[i]mod seeda[i]=a[i]\mod seeda[i]=a[i]modseed 后两两互不相同,找到最小的 seedseedseed题目分析:考虑转换模型,如果存在着 iii 和 jjj 使得 a[i]≡a[j](modseed)a[i] \equiv a[j] \pmod {seed}a[i]≡a[j](modseed),那么肯定有 a[i]+k∗seed原创 2021-07-22 09:54:47 · 301 阅读 · 0 评论 -
洛谷 - P4173 残缺的字符串(多项式匹配字符串-NTT)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串 sss 和一个长度为 mmm 的字符串 ttt,都含有通配符 ‘*’,现在问字符串 ttt 可以匹配字符串 nnn 的哪些位置题目分析:模糊匹配的模板题,先放两个公式:设原模式串为 AAA,匹配串 BBB,AAA 的翻转 SSSP(x)P(x)P(x) 为全匹配函数,若 P(x)=0P(x)=0P(x)=0 则称 BBB 以第 xxx 位结束的连续 mmm 位,与 AAA 完全匹配普通的单模式串匹配:P(x)=T+f(x)−f(x−m原创 2021-07-27 21:52:58 · 265 阅读 · 0 评论 -
HDU多校3 - 6975 Forgiving Matching(多项式匹配字符串)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串 sss 和一个长度为 mmm 的字符串 ttt。规定 kkk 匹配的意思是,两个长度相同的字符串至多有 kkk 个位置是不同的,特别的,k=0k=0k=0 时指的就是完全匹配。现在问当 k∈[0,m]k \in[0,m]k∈[0,m] 时,字符串 ttt 可以和字符串中的多少个子串匹配题目分析:这里简单分析一下多项式匹配字符串的一般方法。设 S(i)S(i)S(i) 为字符串 sss 的每一位,同理 T(j)T(j)T(j) 为字符串 ttt原创 2021-07-28 11:04:29 · 518 阅读 · 0 评论