题目:http://cogs.pro:8080/cogs/problem/problem.php?pid=2259

详见:https://www.cnblogs.com/Zinn/p/10054569.html

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int N=1e5+,M=(<<)+,mod=,g=;
int n,a[M],b[M],A[M],len,r[M],c[M];
int rdn()
{
int ret=;bool fx=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-')fx=;ch=getchar();}
while(ch>=''&&ch<='') ret=ret*+ch-'',ch=getchar();
return fx?ret:-ret;
}
void upd(int &x){x>=mod?x-=mod:;}
int pw(int x,int k)
{int ret=;while(k){if(k&)ret=(ll)ret*x%mod;x=(ll)x*x%mod;k>>=;}return ret;}
void ntt(int *a,bool fx)
{
for(int i=;i<len;i++)
if(i<r[i])swap(a[i],a[r[i]]);
for(int R=;R<=len;R<<=)
{
int wn=pw( g,fx?(mod-)-(mod-)/R:(mod-)/R );
for(int i=,m=R>>;i<len;i+=R)
for(int j=,w=;j<m;j++,w=(ll)w*wn%mod)
{
int x=a[i+j], y=(ll)w*a[i+m+j]%mod;
a[i+j]=x+y; upd(a[i+j]);
a[i+m+j]=x+mod-y; upd(a[i+m+j]);
}
}
if(!fx)return ; int inv=pw(len,mod-);
for(int i=;i<len;i++)a[i]=(ll)a[i]*inv%mod;
}
void getinv(int n,int *a,int *b)
{
if(n==){b[]=pw(a[],mod-);return;}
getinv(n+>>,a,b);
for(len=;len<n<<;len<<=);
for(int i=;i<len;i++)r[i]=(r[i>>]>>)+((i&)?len>>:);
for(int i=;i<n;i++)A[i]=a[i]; for(int i=n;i<len;i++)A[i]=;
ntt(A,); ntt(b,);
for(int i=;i<len;i++)b[i]=(-(ll)A[i]*b[i])%mod*b[i]%mod+mod,upd(b[i]);
ntt(b,);
for(int i=n;i<len;i++)b[i]=;
}
int main()
{
freopen("polypeptide.in","r",stdin);
freopen("polypeptide.out","w",stdout);
n=rdn();int m;m=rdn();
for(int i=,d;i<=m;i++)
{
d=rdn();
a[d]+=mod-,upd(a[d]);
}
a[]++; upd(a[]);
getinv(n+,a,b);
printf("%d\n",b[n]);
return ;
}

最新文章

  1. CentOS7 重置root密码
  2. ”未在本地计算机上注册“microsoft.et.OLEDB.4.0”提供程序。“解决方案大集合
  3. PHP 使用命名空间(namespace),实现自动加载
  4. sublime问题汇总
  5. 中南大学第一届长沙地区程序设计邀请赛 To Add Which?
  6. floodlight StaticFlowPusher 基于网段写flow,通配
  7. deque用法 和与vector的区别
  8. ubuntu12.04的vim配置
  9. HDOJ 4687 Boke and Tsukkomi 一般图最大匹配带花树+暴力
  10. 如何针对已经安装好的Apache/PHP/Mysql/Nginx程序查看他们的编译参数
  11. make menuconfig 笔记
  12. centos7中bash: maven: 未找到命令... 解决办法
  13. FineUILearning
  14. 双网卡双线路DNS解析分析
  15. 【 PostgreSQL】查询某模式下所有表的分布键信息
  16. matlab:统计矩阵中某元素的个数
  17. Java虚拟机(六):JVM调优工具
  18. csharp:FlowLayoutPanel
  19. SpringMVC整合fastjson、easyui 乱码问题
  20. unix gcc编译过程

热门文章

  1. java中泛型的一个小问题
  2. iOS日常学习 - iOS10上关于NSPhotoLibraryUsageDescription等问题
  3. spark数据监控实战
  4. eclipse官网下载
  5. hdu 5777 domino 贪心
  6. JDBC插入性能优化对比
  7. 使用Entity Framework时遇到的各种问题总结
  8. 编辑器上的vim插件,常用到的快捷件
  9. 如何在 CentOS7 中安装 Nodejs
  10. 【PAT-L2-020】功夫传人