省队集训day6 A
code:
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#define maxn 262146
#define mod 950009857
#define g 7
using namespace std;
typedef long long int64;
char ch;
int n,m,k,x,N,len,rev[maxn];
int64 a[maxn],b[maxn],c[maxn],wwn[][maxn],wn,w,t1,t2;
bool ok;
void read(int &x){
for (ok=,ch=getchar();!isdigit(ch);ch=getchar()) if (ch=='-') ok=;
for (x=;isdigit(ch);x=x*+ch-'',ch=getchar());
if (ok) x=-x;
}
void read(int64 &x){
for (ok=,ch=getchar();!isdigit(ch);ch=getchar()) if (ch=='-') ok=;
for (x=;isdigit(ch);x=x*+ch-'',ch=getchar());
if (ok) x=-x;
}
int re(int v){
int t=;
for (int i=;i<len;i++) t<<=,t|=v&,v>>=;
return t;
}
int64 ksm(int64 a,int64 b){
int64 t=;
for (;b;b>>=){if (b&) t=t*a%mod; a=a*a%mod;}
return t;
}
void ntt(int64 *a,int op){
for (int i=;i<N;i++) if (i<rev[i]) swap(a[i],a[rev[i]]);
for (int s=;s<=N;s<<=){
wn=wwn[op][s];
for (int i=;i<N;i+=s){
w=;
for (int j=i;j<i+(s>>);j++,w=w*wn%mod){
t1=a[j],t2=w*a[j+(s>>)]%mod;
a[j]=(t1+t2)%mod,a[j+(s>>)]=((t1-t2)%mod+mod)%mod;
}
}
}
if (op==){
int64 x=ksm(N,mod-);
for (int i=;i<N;i++) a[i]=a[i]*x%mod;
}
}
int main(){
read(n),read(m),read(k),N=;
for (int i=;i<n;i++) read(a[i]);
for (int i=;i<=m;i++) read(x),b[x]++;
while (N<(n<<)) len++,N<<=;
for (int i=;i<N;i++) rev[i]=re(i);
for (int i=;i<=len;i++) wwn[][<<i]=ksm(g,(mod-)/(<<i));
for (int i=;i<=len;i++) wwn[][<<i]=ksm(wwn[][<<i],mod-);
for (;k;k>>=){
ntt(b,);
if (k&){
ntt(a,);
for (int i=;i<N;i++) a[i]=a[i]*b[i]%mod;
ntt(a,);
for (int i=n;i<N;i++) a[i]=;
}
for (int i=;i<N;i++) b[i]=b[i]*b[i]%mod;
ntt(b,);
for (int i=n;i<N;i++) b[i]=;
}
for (int i=;i<n;i++) printf("%lld ",a[i]);
puts("");
return ;
}
省队集训day6 A的更多相关文章
- 省队集训day6 C
Description 给定平面上的 N 个点, 其中有一些是红的, 其他是蓝的.现在让你找两条平行的直线, 使得在保证 不存在一个蓝色的点 被夹在两条平行线之间,不经过任何一个点, 不管是蓝色 ...
- 省队集训day6 B
一道AC自动机题···· 一定要把一个节点没有的儿子接到它fai的儿子,否则会卡到n^2的······· #include<cstdio> #include<iostream> ...
- 省队集训 Day6 序列
[题目大意] 给出$n$个数的序列$a_1, a_2, ..., a_n$,有$m$次操作,为下面三种: $A~l~r~d$:区间$[l,r]$,全部加$d$. $M~l~r~d$:区间$[l,r]$ ...
- HN2018省队集训
HN2018省队集训 Day1 今天的题目来自于雅礼的高二学长\(dy0607\). 压缩包下载 密码: 27n7 流水账 震惊!穿着该校校服竟然在四大名校畅通无阻?霸主地位已定? \(7:10\)从 ...
- JS省队集训记
不知不觉省队集训已经结束,离noi也越来越近了呢 论考前实战训练的重要性,让我随便总结一下这几天的考试 Day 1 T1 唉,感觉跟xj测试很像啊?meet in middle,不过这种题不多测是什么 ...
- LOJ #6074. 「2017 山东一轮集训 Day6」子序列
#6074. 「2017 山东一轮集训 Day6」子序列 链接 分析: 首先设f[i][j]为到第i个点,结尾字符是j的方案数,这个j一定是从i往前走,第一个出现的j,因为这个j可以代替掉前面所有j. ...
- [2018HN省队集训D9T1] circle
[2018HN省队集训D9T1] circle 题意 给定一个 \(n\) 个点的竞赛图并在其中钦定了 \(k\) 个点, 数据保证删去钦定的 \(k\) 个点后这个图没有环. 问在不删去钦定的这 \ ...
- [2018HN省队集训D8T1] 杀毒软件
[2018HN省队集训D8T1] 杀毒软件 题意 给定一个 \(m\) 个01串的字典以及一个长度为 \(n\) 的 01? 序列. 对这个序列进行 \(q\) 次操作, 修改某个位置的字符情况以及查 ...
- [2018HN省队集训D8T3] 水果拼盘
[2018HN省队集训D8T3] 水果拼盘 题意 给定 \(n\) 个集合, 每个集合包含 \([1,m]\) 中的一些整数, 在这些集合中随机选取 \(k\) 个集合, 求这 \(k\) 个集合的并 ...
随机推荐
- poj1006
题目大意:生物节律 一些人相信有三种循环在一个人生命中从他或者她出生的那天起,这个三个周期是,身体,情绪,智力, 并且他们有23,28,和33天的时间,在每一个周期里面都有一个周期,在一个周期的高峰期 ...
- Servlet的一些细节(2)
1. Servlet的创建时间 Servlet是不能单独运行,调用它的叫做Servlet引擎,或者叫做web服务器 针对客户端的多长Servlet请求,通常情况下,服务器只会创建一个Servlet实例 ...
- kafka Disks and Filesystem(磁盘和文件系统)
转载请注明来源地址:http://www.cnblogs.com/dongxiao-yang/p/5206631.html We recommend using multiple drives to ...
- Android导出jar包后的资源使用问题
我们常常遇到一个需求,就是给别人使用我们project的时候,为了可以屏蔽代码,把代码封装成jar包提供给第三方使用,可是这样我们的资源文件怎么给对方用呢? 网上有非常多方法,实用ClassLoade ...
- LINUX 内核与 systemtap +GO 专家博客 一个[ 系统软件工程师] 的随手涂鸦
http://nanxiao.me/category/%E3%80%8Anix-hacking%E3%80%8B%E6%9D%82%E5%BF%97/ 月刊 https://github.co ...
- Where Jboss7.1 take war application to deploy--reference
Question i've deployed the jboss-as-helloworld-errai application in my standalone jboss7.1 instance, ...
- 第三篇:数据仓库系统的实现与使用(含OLAP重点讲解)
前言 上一篇重点讲解了数据仓库建模,它是数据仓库开发中最核心的部分.然而完整的数据仓库系统还会涉及其他一些组件的开发,其中最主要的是ETL工程,在线分析处理工具(OLAP)和商务智能(BI)应用等. ...
- 转载:C# HashSet 用法
原文地址:http://www.cnblogs.com/xiaopin/archive/2011/01/08/1930540.html 感谢博主分享! NET 3.5在System.Collect ...
- win7 打开方式不能添加程序
打开注册表,找到“HKEY_CLASSES_ROOT\Applications\”中,查看相应的程序的“\shell\open\command”项中的数据是否正确:如果不正确,就修改正确,之后再添加程 ...
- java 跳转地址栏地址改变
在strtus1 中,很多都是直接的action 配置后进行跳转的 这样地址栏是不会改变的 如果需要进行浏览器跳转 ActionForward actionForward = new ActionFo ...