
XX Open Cup GP of Gomel B (Baekjoon18743) Bin【生成函数+分治fft】
发布日期:2021-05-06 15:54:57
浏览次数:28
分类:精选文章
本文共 1536 字,大约阅读时间需要 5 分钟。
f ( n ) f(n) f(n) 表示叶子节点为 n n n 的方案数。则根据定义:
f ( n ) = ∑ i ≤ n − i + k f ( i ) × f ( n − i ) f(n)=\sum_{i\le n-i+k}f(i)\times f(n-i) f(n)=i≤n−i+k∑f(i)×f(n−i) 可以发现因为 k k k 很小,所以 i i i 是枚举了 1 1 1 到 n n n 的一半多一点点的位置。如果让 i i i 枚举 1 1 1 到 n n n ,新的和就变成了 f ( n ) f(n) f(n) 的两倍少中间那一点的样子。
于是考虑两边同时 × 2 \times 2 ×2 把限制放松
2 f ( n ) = ∑ 1 ≤ i < n f ( i ) × f ( n − i ) + ∑ ∣ i − ( n − i ) ∣ ≤ k f ( i ) f ( n − i ) 2f(n)=\sum_{1\le i<n}f(i)\times f(n-i)+\sum_{|i-(n-i)|\le k}f(i)f(n-i) 2f(n)=1≤i<n∑f(i)×f(n−i)+∣i−(n−i)∣≤k∑f(i)f(n−i) 把它看成多项式,那就是卷积形式。左边的和式就是分治fft可做,(注意是自己卷自己和分治fft的模板不太一样。 O ( n log 2 n ) O(n\log^2n) O(nlog2n) 。
右边的和式在分治到单个节点的时候暴力算, O ( n k ) O(nk) O(nk) 。
时间复杂度 O ( n log 2 n + n k ) O(n\log^2n+nk) O(nlog2n+nk) 。
#include#define N 2000006using namespace std;typedef long long ll; typedef vector vec;const ll mod=998244353;int now_limit;int rev[N];ll wq[20][N],fac[N],inv[N];ll ksm(ll x,ll y){ ll res=1; while(y){ if(y&1)res=res*x%mod; x=x*x%mod; y>>=1; } return res;}void init_NTT(int limit){ if(limit==now_limit) return; now_limit=limit; int l=0; while((1< >1]>>1)|((i&1)<<(l-1)); if(wq[0][0]==0){ while(limit<1000000) limit<<=1; for(int mid=1,l=0;mid <<=1,l++){ wq[l][0]=1,wq[l][1]=ksm(3,(mod-1)/(mid<<1)); for(int k=2;k k) for(int i=(l-k+1)/2;i+i >1; cdq_NTT(l,mid); vec a,b; a=vector (&f[l],&f[mid]); b=vector (&f[0],&f[min(r-l,mid)]); int limit=1; while(limit >n>>k; f.resize(n+1); f[1]=2; inv2=ksm(2,mod-2); cdq_NTT(0,n+1); cout< <<'\n';}
发表评论
最新留言
很好
[***.229.124.182]2025年03月25日 04时04分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
const与常量,傻傻分不清楚~
2021-05-09
Head First设计模式——迭代器模式
2021-05-09
MongoDB版本及存储引擎区别
2021-05-09
shell echo单行和多行文字定向写入到文件中
2021-05-09
cmp命令
2021-05-09
Linux 磁盘管理(df fu fdisk mkfs mount)
2021-05-09
jQuery的事件绑定与触发 - 学习笔记
2021-05-09
Linux上TCP的几个内核参数调优
2021-05-09
记一次讲故事机器人的开发-我有故事,让机器人来读
2021-05-09
seo 回忆录百度基本概念(一)
2021-05-09
netcore中使用session
2021-05-09
Android 开发学习进程0.25 自定义控件
2021-05-09
多媒体文件格式全解说(下)--图片
2021-05-09
淘宝WAP版小BUG分析
2021-05-09
asp.net打印网页后自动关闭网页【无需插件】
2021-05-09
【Maven】POM基本概念
2021-05-09
【Java思考】Java 中的实参与形参之间的传递到底是值传递还是引用传递呢?
2021-05-09
【设计模式】单例模式
2021-05-09
远程触发Jenkins的Pipeline任务的并发问题处理
2021-05-09