题解:

我是参考的

http://blog.csdn.net/qq_32570675/article/details/76571666

这一篇

orz 原来可以这么变换,涨姿势

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long LL;
const int maxn = 1e5 + ;
const int g = ;
const int MOD = ;
LL F[maxn*], G[maxn*], mul[maxn], imul[maxn], ans[maxn], qp[maxn];
int a[maxn]; LL mypow(LL a, LL b){
LL ans = ; for(; b; b >>= ) { if(b&) (ans *= a) %= MOD; (a *= a) %= MOD; } return ans;
} void Modify(LL *a, int L){
for(int i = , j = L/; i < L-; i++){
if(i < j) swap(a[i], a[j]);
int k = L/;
while(j >= k){
j -= k;
k >>= ;
}
if(j < k) j += k;
}
} void NTT(LL *y, int L, int ty){
Modify(y, L);
int id = ;
for(int h = ; h <= L; h <<= ){
id++;
for(int j = ; j < L; j += h){
LL w = ;
for(int k = j; k < j + h/; k++){
LL u = y[k];
LL t = y[k+h/]*w%MOD;
y[k] = (u+t)%MOD;
y[k+h/] = (u-t+MOD)%MOD;
w = w*qp[id]%MOD;
}
}
}
if(ty == -){
for(int i = ; i < L/; i++) swap(y[i], y[L-i]);
LL inv = mypow(L, MOD-);
for(int i = ; i < L; i++)
y[i] = y[i]*inv%MOD;
}
} void init(){
int n = 1e5 + ;
mul[] = imul[] = mul[] = ;
for(int i = ; i <= n; i++) mul[i] = (mul[i-]*i)%MOD;
for(int i = ; i <= n; i++) imul[i] = mypow(mul[i], MOD-);
for(int i = ; i < ; i++){
int t = <<i;
qp[i] = mypow(g, (MOD-)/t);
}
} int main()
{
init();
int n, m, x;
while(cin>>n){
for(int i = ; i <= n; i++) scanf("%d", &a[i]);
cin>>m;
LL b = ;
for(int i = ; i <= m; i++){
scanf("%d", &x);
b -= x;
(b += MOD) %= MOD;
}
memset(F, , sizeof(F));
memset(G, , sizeof(G));
for(int i = ; i <= n; i++){
F[i] = a[n-i]*mul[n-i]%MOD;
G[i] = mypow(b, i)*imul[i]%MOD;
}
int L = , nn = (n+)<<;
while(L < nn) L <<= ;
NTT(F, L, ); NTT(G, L, );
for(int i = ; i < L; i++){
F[i] = (F[i]*G[i])%MOD;
}
NTT(F, L, -);
for(int i = ; i <= n; i++){
(F[i] += MOD) %= MOD;
ans[i] = F[n-i]*imul[i]%MOD;
}
for(int i = ; i <= n; i++) printf("%d ", ans[i]);
cout<<endl;
}
return ;
}

2017 Multi-University Training Contest - Team 3 RXD and functions(NTT)的更多相关文章

  1. 2017 Multi-University Training Contest - Team 3 RXD and dividing(树)

    题解: 其实贪心地算就可以了 一个最优的分配就是每条边权贡献的值为min(k, sz[x]),sz[x]是指子树的大小 然后最后加起来就是答案. #include <iostream> # ...

  2. HDU 6061 RXD and functions(NTT)

    题意 给定一个\(n​\) 次的 \(f​\) 函数,向右移动 \(m​\) 次得到 \(g​\) 函数,第 \(i​\) 次移动长度是 \(a_i​\) ,求 \(g​\) 函数解析式的各项系数,对 ...

  3. 【推导】【NTT】hdu6061 RXD and functions(NTT)

    题意:给定一个n次多项式f(x)的各项系数,让你求f(x-Σai)的各项系数. http://blog.csdn.net/v5zsq/article/details/76780053 推导才是最关键的 ...

  4. 2017 Multi-University Training Contest - Team 3 Kanade's trio(字典树+组合数学)

    题解: 官方题解太简略了orz 具体实现的方式其实有很多 问题就在于确定A[j]以后,如何找符合条件的A[i] 这里其实就是要提前预处理好 我是倒序插入点的,所以要沿着A[k]爬树,找符合的A[i] ...

  5. 2017 Multi-University Training Contest - Team 3 hdu6060 RXD and dividing

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6060 题目: RXD and dividing Time Limit: 6000/3000 M ...

  6. 2017 Multi-University Training Contest - Team 9 1005&&HDU 6165 FFF at Valentine【强联通缩点+拓扑排序】

    FFF at Valentine Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  7. 2017 Multi-University Training Contest - Team 9 1004&&HDU 6164 Dying Light【数学+模拟】

    Dying Light Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  8. 2017 Multi-University Training Contest - Team 9 1003&&HDU 6163 CSGO【计算几何】

    CSGO Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  9. 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】

    Ch’s gift Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

随机推荐

  1. 用 jQuery 实现表单验证(转载)

    jQuery 官方 API 地址: http://api.jquery.com/ 在线引用 jQuery:http://code.jquery.com/ ——选自<锋利的jQuery>(第 ...

  2. iframe中的页面在IE全屏模式下没有滚动条,正常模式有滚动条

    这个问题在其他浏览器都不会出现,唯独IE不行,搜遍了百度以及各大论坛网站,都找不到这个问题的解决方案,只好自己整了. 造成这个问题的原因很简单,就是刚开始的滚动条我用的是iframe的滚动条,ifra ...

  3. js-关于iframe:从子页面给父页面的控件赋值方法

    项目中我们经会用到iframe,可能还会把iframe里的数值赋值给父页面空间. 接下来我们来说说有关于iframe赋值给父页面的方法. 1.子页面iframe给父页面的控件赋值方法. parent. ...

  4. dom4j解析器sax解析xml文件

    1.使用dom4j解析器解析xml ***解析器dom4j是由dom4j组织提供的,针对xml进行解析.dom4j不是Javase的一部分,使用时需要导入dom4j的jar包(官网下载) 在eclip ...

  5. web3.js_1.x.x--API(一)event/Constant/deploy/options

    /* 事件是使用EVM日志内置功能的方便工具,在DAPP的接口中,它可以反过来调用Javascript的监听事件的回调. 事件在合约中可被继承.当被调用时,会触发参数存储到交易的日志中(一种区块链上的 ...

  6. Java 使用Apache POI读取和写入Excel表格

    1,引入所用的包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxm ...

  7. python 摘要算法

    一.概述: 摘要算法主要特征是加密过程不需要密钥,并且加密的数据无法解密,只有输入相同的明文数据经过相同的摘要算法才能得到相同的密文.摘要算法主要应用在“数字签名”领域.接下来会讲述RSA公司的MD5 ...

  8. Phpstudy2018 集成环境配置虚拟域名访问到Index Of 下

    (1)    Phpstudy是一款php集成开发环境 可随意切换Php的版本以及服务器. Phpstudy的网站根目录默认为WWW目录,那么如果我们想通过虚拟域名访问到Index Of目录来便于查看 ...

  9. PAT (Basic Level) Practice (中文)1002

    1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...

  10. Java——自动生成30道四则运算---18.09.27

    package chuti;import java.io.PrintWriter;import java.util.Scanner;import java.io.FileNotFoundExcepti ...