博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5322 Hope
阅读量:5263 次
发布时间:2019-06-14

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

题解:

放完前$i-1$个数之后,$i$会让前面的数变成一个整体,而且与后面没有影响。

就有了$dp$方程:$$dp[i]=\sum(k^2*dp[i-k]*(k-1)!*C(i-1,k-1))$$

拆开组合数之后有这个东西:$$\frac{dp[i]}{(i-1)!}=\sum(\frac{dp[i-k]}{(i-k)!}*k^2)$$

于是就开心的去写$CDQ$了。

代码:

#include
#include
#include
using namespace std;const int MOD = 998244353;const int N = 150000;typedef long long ll;ll fastpow(ll x,int y){ ll ret = 1; while(y) { if(y&1)ret=ret*x%MOD; x=x*x%MOD; y>>=1; } return ret;}int to[4*N],lim=1,L=0;ll inv,W[4*N];void ntt(ll *a,int len,int k){ for(int i=0;i
>1);i++)swap(a[i],a[len-i]); for(int i=0;i
>1; divi(l,mid); lim = 1,L = 0; while(lim<=(r-l+1))lim<<=1,L++; for(int i=1;i
>1]>>1)|((i&1)<<(L-1))); inv = fastpow(lim,MOD-2); for(int i=1;i
<<=1)W[i]=fastpow(3,(MOD-1)/(i<<1)); for(int i=0;i
0) printf("%I64d\n",dp[x]); return 0;}

 

转载于:https://www.cnblogs.com/LiGuanlin1124/p/10284448.html

你可能感兴趣的文章
用户登录系统(三)
查看>>
[SCOI2010][BZOJ1854] 游戏|二分图匹配|匈牙利算法|并查集
查看>>
mysql:数据库备份方案
查看>>
桂林电子科技大学第三届ACM程序设计竞赛 G 路径
查看>>
物联网服务端架构
查看>>
BZOJ 1102: [POI2007]山峰和山谷Grz【BFS】
查看>>
整齐打印
查看>>
ajax post 时 form数据serialize()
查看>>
解决php的sha1和java的sha1(DigestUtils.sha1Hex)产生的字符串不相等的问题
查看>>
"New page after" by code
查看>>
AsyncAwait 学习
查看>>
MySQL数据库学习之二
查看>>
操作系统中断的运行细节
查看>>
Visual Studio的Web Performance Test提取规则详解(1)
查看>>
poj1125
查看>>
推荐10款免费而优秀的图表插件
查看>>
基于java的五子棋小游戏
查看>>
[源码和文档分享]基于C#实现的电影网站数据爬虫和电影网站
查看>>
POJ 1654 Area [多边形面积]
查看>>
DataPipeline丨新型企业数据融合平台的探索与实践
查看>>