bzoj 4555: [Tjoi2016&Heoi2016]求和【NTT】
暴力推式子推诚卷积形式,但是看好多blog说多项式求逆不知道是啥..
\]
\]
\]
\]
\]
\]
\]
设
\]
\]
于是就得到了卷积形式,可以上NTT了
顺便根据等比数列求和公式,\(\sum_{i=0}{i}kn=\frac{k^{n+1}-1}{k-1} \)
#include<iostream>
#include<cstdio>
using namespace std;
const int N=300005,mod=998244353,G=3;
int n,fac[N],inv[N],fi[N],a[N],b[N],re[N],lm,bt,ans;
int ksm(int a,int b)
{
int r=1;
while(b)
{
if(b&1)
r=1ll*r*a%mod;
a=1ll*a*a%mod;
b>>=1;
}
return r;
}
void dft(int a[],int f)
{
for(int i=0;i<lm;i++)
if(i<re[i])
swap(a[i],a[re[i]]);
for(int i=1;i<lm;i<<=1)
{
int wi=ksm(G,(mod-1)/(i<<1));
if(f==-1)
wi=ksm(wi,mod-2);
for(int k=0;k<lm;k+=(i<<1))
{
int w=1,x,y;
for(int j=0;j<i;j++)
{
x=a[j+k];
y=1ll*w*a[i+j+k]%mod;
a[j+k]=((x+y)%mod+mod)%mod;
a[i+j+k]=((x-y)%mod+mod)%mod;
w=1ll*w*wi%mod;
}
}
}
if(f==-1)
{
int ni=ksm(lm,mod-2);
for(int i=0;i<lm;i++)
a[i]=1ll*a[i]*ni%mod;
}
}
void ntt()
{
bt=1;
for(;(1<<bt)<=2*n;bt++);
lm=(1<<bt);
for(int i=0;i<=lm;i++)
re[i]=(re[i>>1]>>1)|((i&1)<<(bt-1));
dft(a,1);
dft(b,1);
for(int i=0;i<lm;i++)
a[i]=1ll*a[i]*b[i]%mod;
dft(a,-1);
}
int main()
{
scanf("%d",&n);
inv[1]=1,fac[0]=fi[0]=1;
for(int i=1;i<=n;i++)
{
if(i!=1)
inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;
fac[i]=1ll*fac[i-1]*i%mod;
fi[i]=fi[i-1]*inv[i]%mod;
}
a[0]=1;
for(int i=1;i<=n;i++)
a[i]=((i&1)?-1:1)*fi[i];
b[0]=1,b[1]=n+1;
for(int i=2;i<=n;i++)
b[i]=1ll*(ksm(i,n+1)-1)*inv[i-1]%mod*fi[i]%mod;
ntt();
for(int i=0;i<=n;i++)
ans=(ans+1ll*fac[i]*ksm(2,i)%mod*a[i]%mod)%mod;
printf("%d",(ans%mod+mod)%mod);
return 0;
}
bzoj 4555: [Tjoi2016&Heoi2016]求和【NTT】的更多相关文章
- bzoj 4555 [Tjoi2016&Heoi2016]求和 NTT 第二类斯特林数 等比数列求和优化
[Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 679 Solved: 534[Submit][S ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 (NTT + 第二类斯特林数)
题意 给你一个数 \(n\) 求这样一个函数的值 : \[\displaystyle f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i} \begin{Bmatrix} i \\ j ...
- bzoj 4555 [Tjoi2016&Heoi2016]求和——NTT+第二类斯特林数
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4555 第二类斯特林数展开式: \( S(i,j) = \frac{1}{j!} \sum\l ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 [FFT 组合计数 容斥原理]
4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林 ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 [分治FFT 组合计数 | 多项式求逆]
4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林 ...
- [BZOJ 4555][Tjoi2016&Heoi2016]求和
题意 给定 $n$ , 求下式的值: $$ f(n)= \sum_{i=0}^n\sum_{j=0}^i\begin{Bmatrix}i\\ j\end{Bmatrix}\times 2^j\time ...
- bzoj 4555 [Tjoi2016&Heoi2016] 求和 —— 第二类斯特林数+NTT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4555 关于第二类斯特林数:https://www.cnblogs.com/Wuweizhen ...
- BZOJ 4555:[TJOI2016&HEOI2016]求和(第二类斯特林数+NTT)
题目链接 \(Description\) 求 \[\sum_{i=0}^n\sum_{j=0}^iS(i,j)2^jj!\]对998244353取模后的结果. \(n<=10^5\) \(Sol ...
- BZOJ 4555 [Tjoi2016&Heoi2016]求和 ——分治 NTT 多项式求逆
不想多说了,看网上的题解吧,我大概说下思路. 首先考察Stirling的意义,然后求出递推式,变成卷积的形式. 然后发现贡献是一定的,我们可以分治+NTT. 也可以直接求逆(我不会啊啊啊啊啊) #in ...
随机推荐
- 创建SSH keys
1.检查是否已经有SSH Key存在 windows: type "%userprofile%\.ssh\id_rsa.pub" Linux: cat ~/.ssh/id_rsa. ...
- hdu6080(最小环)
题目 http://acm.hdu.edu.cn/showproblem.php?pid=6080 分析 很妙的思路,将里面的点集当作A,将外面的点集当作B 然后O(n^2)枚举两两B点,设一个是u, ...
- SpringData,JPA,MongoDB,Solr,Elasticsearch底层逻辑关系
一: Spring-data底层的接口路基: spring-data : PagingAndSortingRepository-> CrudRepository-> Repository ...
- 洛谷 P3807 【模板】卢卡斯定理
P3807 [模板]卢卡斯定理 题目背景 这是一道模板题. 题目描述 给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105) 求 C_{n+m}^{m}\ mod\ pCn+mm ...
- Windows如何在cmd命令行中查看、修改、删除与添加、设置环境变量
首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方 ...
- "格式太旧或是类型库无效。 (异常来自 HRESULT:0x80028019 (TYPE_E_UNSUPFORMAT))"
错误提示内容: “System.Runtime.InteropServices.COMException (0x80028019): 格式太旧或是类型库无效. (异常来自 HRESULT:0x8002 ...
- [scrapy]实例:爬取jobbole页面
工程概览: 创建工程 scrapy startproject ArticleSpider 创建spider cd /ArticleSpider/spiders/ 新建jobbole.py # -*- ...
- redis connetced refused remote
239down vote I've been stuck with the same issue, and the preceding answer did not help me (albeit w ...
- MySQL基础笔记(四) 索引
一.什么是索引 索引(Index),可以看作一个指针,指向表里的数据.当数据库没有索引时,查找信息通常是全表扫描:使用了索引,它就会直接引导到数据在表里的准确物理位置. 优点:索引的主要目的是提高数据 ...
- 报错:Binary XML file line #7: Error inflating class android.support.v7.widget.RecyclerView
近期学习RecyclerView,使用eclipse引用RecyclerView.编写完demo后编译没有问题,一执行就挂掉,错误例如以下: 07-22 23:05:34.553: D/Android ...