/*hdu6061[NTT推公式] 2017多校3*/
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL MOD = ;
const int MAX_N = ;
int n, m, temp;
LL a;
LL inv[];
LL Finv[];
LL F[];
LL A[], B[], C[];
LL quickPow(LL x, LL n, LL MOD) {
LL ans = ;
for (; n; n >>= ) {
if (n & ) ans = (ans * x) % MOD;
x = (x * x) % MOD;
}
return ans;
} void inv_init() {
inv[] = ;
for (int i = ; i <= MAX_N; ++i) {
inv[i] = (MOD - MOD / i) * inv[MOD % i] % MOD;
}
F[] = Finv[] = ;
for (int i = ; i <= MAX_N; ++i) {
F[i] = F[i - ] * 1LL * i % MOD;
Finv[i] = Finv[i - ] * 1LL * inv[i] % MOD;
}
}
/*
ntt.run(a, len, 1, MOD);
ntt.run(b, len, 1, MOD);
REP(0, len) c[i] = a[i] * b[i] % MOD;
ntt.run(c, len, -1, MOD);
*/
struct NTT {
enum {g = };
// @private
int rev(int x, int r) {
int ans = ;
for (int i = ; i < r; i++) {
if (x & ( << i)) ans += << (r - i - );
}
return ans;
}
// @public
void run(LL a[], int n, int on, LL MOD) {
int r = (int)log2(n + 1e-);
for (int i = ; i < n; i++) {
int tmp = rev(i, r);
if (i < tmp) swap(a[i], a[tmp]);
}
for (int s = ; s <= r; s++) {
int m = << s;
LL wn = quickPow(g, (MOD - ) / m, MOD);
for (int k = ; k < n; k += m) {
LL w = ;
for (int j = ; j < (m >> ); j++) {
LL t = w * (a[k + j + (m >> )] % MOD) % MOD, u = a[k + j] % MOD;
a[k + j] = (u + t) % MOD;
a[k + j + (m >> )] = ((u - t) % MOD + MOD) % MOD;
w *= wn; w %= MOD;
}
}
}
if (on < ) {
for (int i = ; i < (n >> ); i++) swap(a[i], a[n - i]);
LL inv = quickPow(n, MOD - , MOD);
for (int i = ; i < n; i++) a[i] = a[i] % MOD * inv % MOD;
}
}
} ntt;
int main() {
inv_init();
while (~scanf("%d", &n)) {
a = ;
for (int i = ; i <= n; i++) {
scanf("%lld", &C[i]);
}
scanf("%d", &m);
for (int i = ; i < m; i++) {
scanf("%d", &temp);
a -= temp;
if (a <= ) a += MOD;
}
LL temp = 1LL;
int len = ; while (len < ( * n)) len <<= ;
for (int i = ; i < len; i++) {
if (i <= n) {
A[i] = temp * Finv[i] % MOD;
B[i] = F[n - i] * C[n - i] % MOD;
}
else A[i] = B[i] = ;
temp = (temp * a) % MOD;
}
ntt.run(A, len, , MOD);
ntt.run(B, len, , MOD);
for (int i = ; i < len; i++) {
A[i] = (A[i] * B[i]) % MOD;
}
ntt.run(A, len, -, MOD);
for (int i = ; i <= n; i++) {
//cout << A[i] << endl;
A[i] = (A[i] % MOD + MOD) % MOD * Finv[n - i] % MOD;
}
for (int i = ; i <= n; i++) {
printf("%lld ", A[n - i]);
}
puts("");
}
return ;
}

hdu6061[NTT推公式] 2017多校3的更多相关文章

  1. hdu6078[优化递推过程] 2017多校4

    这道题一眼看过去好像和最长公共子序列有点像. 一开始只想到暴力的推法, 令dp[i][j][k]表示 a[i]=b[j](即以ai,bj为结尾的波浪序列的方案数), 且最终状态为k(0,1分别代表下降 ...

  2. 2017多校第7场 HDU 6128 Inverse of sum 推公式或者二次剩余

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6128 题意:给你n个数,问你有多少对i,j,满足i<j,并且1/(ai+aj)=1/ai+1/a ...

  3. 2019牛客多校第二场 A Eddy Walker(概率推公式)

    2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n ...

  4. HDU 4870 Rating(概率、期望、推公式) && ZOJ 3415 Zhou Yu

    其实zoj 3415不是应该叫Yu Zhou吗...碰到ZOJ 3415之后用了第二个参考网址的方法去求通项,然后这次碰到4870不会搞.参考了chanme的,然后重新把周瑜跟排名都反复推导(不是推倒 ...

  5. 2017 多校5 Rikka with String

    2017 多校5 Rikka with String(ac自动机+dp) 题意: Yuta has \(n\) \(01\) strings \(s_i\), and he wants to know ...

  6. 2017 多校3 hdu 6061 RXD and functions

    2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f ...

  7. hdu6069[素数筛法] 2017多校4

    对于[l , r]内的每个数,根据唯一分解定理有   所以有  因为     //可根据唯一分解定理推导 所以      题目要求 就可以运用它到上述公式 (注意不能暴力对l,r内的数一个个分解算贡献 ...

  8. HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)

    在一个D维空间,只有整点,点的每个维度的值是0~n-1 .现每秒生成D条线段,第i条线段与第i维度的轴平行.问D条线段的相交期望. 生成线段[a1,a2]的方法(假设该线段为第i条,即与第i维度的轴平 ...

  9. HDU 5047 推公式+别样输出

    题意:给n个‘M'形,问最多能把平面分成多少区域 解法:推公式 : f(n) = 4n(4n+1)/2 - 9n + 1 = (8n+1)(n-1)+2 前面部分有可能超long long,所以要转化 ...

随机推荐

  1. [BZOJ2434][Noi2011]阿狸的打字机 AC自动机+树状数组+离线

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2434 题目中这种多个串匹配的问题,一下子就想到了AC自动机.然后发现如果要建立AC自动机, ...

  2. 关于HTML5手机端页面缩放的问题

    通常在写HTML5手机端页面的时候,我们会发现页面所显示元素的比例不正确,那此时我们需要添加的就是: <meta name="viewport" content=" ...

  3. IE兼容rgba()透明度

    一般浏览器的背景透明度可以直接设置 background:rgba(0,0,0,.5); -webkit-background:rgba(0,0,0,.5); -o-background:rgba(0 ...

  4. 制作 Favicon.ico 图标教程

    摘要:有一些站长认为 favicon.ico 图标对于一个网站没有什么作用.甚至有一些站长认为,少加载一个图片,页面设计展现的速度更快些.的确,理论上是对的,但乐猪认为这种想法是肤浅的!有这种想法的站 ...

  5. List 集合中数据不重复的使用

    foreach (DataRow dr in dt.Rows) { list.Add(dr["项目组"].ToString()); } list = list.Distinct&l ...

  6. SQL注入中的整型注入实验

    首先搭建一个用于注入的环境 目录结构 conn.php 用来连接数据库的文件PHP文件 index.php 用来执行SQL命令,以及返回查询结构 index.html              一个存 ...

  7. Jenkins结合ant传递参数

    需求: 使用Jenkins的「参数化构建过程」,由用户手动输入参数.通过ant脚本接收这个参数,并输出(当然,中间也可以进行复杂的处理,这里为了说明问题,仅做简单的输出). 1.基础环境 Jenkin ...

  8. jmeter常量吞吐量定时器

    jmeter常量吞吐量定时器

  9. Postgres远程访问配置

    在服务器上安装了Postgres数据库,然后通过客户端工具pgAdminIII来远程访问的过程中发现提醒服务器没有启动监听的错误.解决方法如下: 编辑Postgres安装路径下的/data/pg_hb ...

  10. (转)MyBatis框架的学习(一)——MyBatis介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/71699343 MyBatis介绍 MyBatis本是apache的一个开源项目iBatis,2 ...