博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[UOJ424]count
阅读量:5887 次
发布时间:2019-06-19

本文共 1633 字,大约阅读时间需要 5 分钟。

虽然题目不难,但是这应该是我第一次在考场上成功拿到计数题的不算低的分数,值得记录

如果对序列处理出$i$后面第一个比它大的位置$r_i$,那么两个序列同构的条件就是$r_i$都相同,而$r_i$构成一棵树,考虑计数树的数量

更进一步,我们只需计数那些由$1\cdots n$的排列生成的深度$\leq m$的树,因为用$[1,m]$中的数不能生成深度$\gt m$的树,生成这样的树的排列也可以通过恰当安排变成数字范围为$[1,m]$的序列

于是可以DP,设$f_{i,j}$表示深度$\leq i$,节点数为$j$的树的数量,枚举$j$在排列中的位置,有$f_{i,0}=1,f_{i,j}=\sum\limits_{k=0}^{j-1}f_{i-1,k}f_{i,j-1-k}$

设$f_{i,0\cdots n}$的生成函数为$F_i$,有$F_0=1,F_i=\frac1{1-xF_{i-1}}$

考场上就做到这里,$O(n^2\log n)$可以拿$70$分

$F_i$可以表示为$\frac{a_i}{b_i}$的形式,其中$a_i,b_i$都是$i$次多项式,推一下就可以矩阵快速幂

直接做显然不行,但因为是线性变换所以先DFT,对点值矩阵快速幂后IDFT回去即可

总时间复杂度$O(n\log n)$

#include
#include
#include
using namespace std;typedef long long ll;const int mod=998244353;int mul(int a,int b){return(ll)a*b%mod;}int ad(int a,int b){return(a+=b)>=mod?a-mod:a;}int de(int a,int b){return(a-=b)<0?a+mod:a;}int pow(int a,int b){ int s=1; while(b){ if(b&1)s=mul(s,a); a=mul(a,a); b>>=1; } return s;}int rev[262144],N,iN;void pre(int n){ int i,k=0; for(N=1,k=0;N
<<=1)k++; for(i=0;i
>1]>>1)|((i&1)<<(k-1)); iN=pow(N,mod-2);}void ntt(int*a,int on){ int i,j,k,t,w,wn; for(i=0;i
>1;k++){ t=mul(a[i/2+j+k],w); a[i/2+j+k]=de(a[j+k],t); a[j+k]=ad(a[j+k],t); w=mul(w,wn); } } } if(on==-1){ for(i=0;i
>1); pre(n<<1); memset(t1,0,N<<2); memcpy(t1,a,n<<2); ntt(t1,1); ntt(b,1); for(int i=0;i
>=1; } return s;}int a[262144],b[262144],c[262144];int main(){ int n,m,i,k,wn,w; scanf("%d%d",&n,&m); if(m>n){ printf("0"); return 0; } for(k=1;k<=n;k<<=1); pre(k*2); wn=pow(3,(mod-1)/N); w=1; for(i=0;i

转载于:https://www.cnblogs.com/jefflyy/p/10458282.html

你可能感兴趣的文章
选址攻略:数据中心选址要明了五大优势
查看>>
让计算变简单 | 信号高速路上,华为服务器是如何绕过那些“坑”的
查看>>
物联网快速发展 促进数据中心需要的爆炸性增长
查看>>
比自建 Hadoop 还便宜!云栖大会揭秘阿里云数加 MaxCompute
查看>>
《Web安全之机器学习入门》一 1.2 人工智能的发展
查看>>
谈3D打印技术在医疗行业的应用
查看>>
10 个最受欢迎的 Java 开发的 CMS 系统
查看>>
安全初创公司获百万风投资金的第一步:容器保护、人工智能和云安全
查看>>
与其说技巧不如叫它血泪史 路由器你真的会挑
查看>>
数据模型多了,应该怎么管?
查看>>
数据中心即使上云,硬件依然是关键
查看>>
云恶意软件是小题大做还是真的邪乎?
查看>>
数据的阴暗面:什么是暗数据?为什么暗数据很重要?
查看>>
网易2018校招内推编程题 彩色的砖块
查看>>
很多人不知道这是采用云技术的最大陷阱,包括你
查看>>
让IT安全人员夜不能寐的11个数据问题
查看>>
数据中心网络带宽性能测试方法介绍
查看>>
大数据平台技术发展脉络
查看>>
如何使用KNIME进行情感分析 | 中
查看>>
数据中心建设必须考虑哪些细节?
查看>>