NTT入门,放个板子

// luogu-judger-enable-o2
#include <bits/stdc++.h>
using namespace std;
#define fr(i, a, b) for ( int i = a; i <= b; ++ i)
#define mid ( l + r >> 1)
typedef long long ll;
, mod = , Ge = ;
template <class T> void G(T &x) {
    x = ; ; ;
    ) + (x << ) + (o & ); x *= f;
}
ll n, g[], f[], a[], b[], rev[];
ll w[][];
ll _pow(ll x, ll n) { ll ans = ; , x = x * x % P) ) ans = ans * x % P; return ans;}
inline void NTT(ll *a, int n, int f) {
    ; i < n; ++ i) if( i < rev[i]) swap(a[i], a[rev[i]]);
    w[][] = w[][] = ;
    ; i < n; i++) {
        w[][i] = w[][i - ] * _pow(Ge, (P - ) / n) % P;
        w[][i] = _pow(w[][i], P - );
    }

    ; i < n; i <<= )
    , l = n / (i << ); j < n; j += (i << ))
    , t = ; k < i; k += , t += l) {
        ll x = a[j + k], y = w[f][t] * a[i + j + k] % P;
        a[j + k] = (x + y) % P, a[i + j + k] = (x - y + P) % P;
    }

    ; f && i < n; i++)
        a[i] = a[i] * _pow(n, P - ) % P;
}
inline void cdq(int l, int r) {
    if( l == r) return ;
    cdq(l, mid);
    , L = ;
    ) << ; Len <<= ) ++ L;
    fr(i, , Len) rev[i] = (rev[i >> ] >> )|((i&) << L-);
    fr(i, , Len) a[i] = b[i] = ;
    fr(i, l, mid) a[i-l] = f[i];
    fr(i, , r-l) b[i] = g[i];
    NTT(a, Len, ); NTT(b, Len, );
    fr(i, , Len) a[i] = a[i] * b[i] % P;
    NTT(a, Len, );
    fr(i, mid+, r) f[i] = (f[i] + a[i-l]) % mod;
    cdq(mid+, r);
}

int main() {
    G(n); fr(i, , n-) G(g[i]);
    f[] = ; cdq(, n-);
    fr(i, , n-) printf("%lld ", f[i]);
}

[洛谷P4721]分治FFT的更多相关文章

  1. 洛谷 P4721 【模板】分治 FFT 解题报告

    P4721 [模板]分治 FFT 题目背景 也可用多项式求逆解决. 题目描述 给定长度为 \(n−1\) 的数组 \(g[1],g[2],\dots,g[n-1]\),求 \(f[0],f[1],\d ...

  2. [洛谷P4721]【模板】分治 FFT

    题目大意:给定长度为$n-1$的数组$g_{[1,n)}$,求$f_{[0,n)}$,要求: $$f_i=\sum_{j=1}^if_{i-j}g_j\\f_0=1$$ 题解:直接求复杂度是$O(n^ ...

  3. 洛谷P4721 【模板】分治 FFT(分治FFT)

    传送门 多项式求逆的解法看这里 我们考虑用分治 假设现在已经求出了$[l,mid]$的答案,要计算他们对$[mid+1,r]$的答案的影响 那么对右边部分的点$f_x$的影响就是$f_x+=\sum_ ...

  4. 洛谷P4721 【模板】分治 FFT(生成函数+多项式求逆)

    传送门 我是用多项式求逆做的因为分治FFT看不懂…… upd:分治FFT的看这里 话说这个万恶的生成函数到底是什么东西…… 我们令$F(x)=\sum_{i=0}^\infty f_ix^i,G(x) ...

  5. 洛谷 P4721 [模板]分治FFT —— 分治FFT / 多项式求逆

    题目:https://www.luogu.org/problemnew/show/P4721 分治做法,考虑左边对右边的贡献即可: 注意最大用到的 a 的项也不过是 a[r-l] ,所以 NTT 可以 ...

  6. [洛谷P4721]【模板】分治 FFT_求逆

    题目大意:给定长度为$n-1$的数组$g_{[1,n)}$,求$f_{[0,n)}$,要求: $$f_i=\sum_{j=1}^if_{i-j}g_j\\f_0=1$$ 题解:分治$FFT$博客,发现 ...

  7. 2019.01.04 洛谷 P4721 【模板】分治 FFT

    传送门 如同题目所描述的一样,这是一道板题. 题意简述:给你一个数组g1,2,...ng_{1,2,...n}g1,2,...n​并定义f0=1,fi=∑j=1ifi−jgjf_0=1,f_i=\su ...

  8. [P4721] 分治 FFT

    「题意」给定\(g[0]=1\),\(g[1~n-1]\)求序列\(f[i]=\sum_{j=1}^i f[i-j]*g[j]\ , i\in[1,n-1],f[0]=1\). 「分析」分治处理区间[ ...

  9. 洛谷P1228 分治

    https://www.luogu.org/problemnew/show/P1228 我真傻,真的,我单知道这种题目可以用dfs剪枝过,没有想到还能构造分治,当我敲了一发dfs上去的时候,只看到一个 ...

随机推荐

  1. php扩展开发1--添加函数

    目标:便携php扩展 要求实现 输出hello word 首先用的是php7.0.3   centos7.1或者centos6.+ 1.1 RPM安装PHP rpm -Uvh https://mirr ...

  2. Angular25 组件的生命周期钩子

    1 生命周期钩子概述 组件共有9个生命周期钩子 1.1 生命周期的执行顺序 技巧01:测试时父组件传递对子组件的输入属性进行初始化操作 import { Component, Input, Simpl ...

  3. 475. Heaters 加热范围

    [抄题]: Winter is coming! Your first job during the contest is to design a standard heater with fixed ...

  4. SQL数据库游标

    这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标--(1)定义游标- ...

  5. NOIP2018 解题笔记

    D1T1 铺设道路 在场上并没有想到积木大赛这道原题. 差分之后可以把在$[l, r]$这段区间$ - 1$变成在$l$处$ - 1$,在$r + 1$处$ + 1$,然后最终目标是使$\forall ...

  6. Part7-时钟初始化_lesson1

    1.概念解析 1.1时钟脉冲信号 1.2时钟脉冲频率 1.3时钟源(提供时钟脉冲信号) a.晶振 b.锁相环PLL 2.时钟体系 2440: 晶振的频率.时钟体系有多少个PLL.这些PLL分别产生了哪 ...

  7. hdu 2206 IP的计算(最全的注意事项)

    注意: 1.非法字符(包括空格) 如下都是错的 A.145.124.4 192.168.18 123(用scanf输入的话,则接收的是:192.168.18) 2.'.'有且仅有3个,且不能连续出现, ...

  8. C# 把本地文件上传到服务器上,和从服务器上下载文件

    方法一.通过Ajax方式上传文件(input file),使用FormData进行Ajax请求 <div  > <input type="file" name=& ...

  9. <abbr> 元素的样式为显示在文本底部的一条虚线边框,当鼠标悬停在上面时会显示完整的文本(只要您为 <abbr> title 属性添加了文本)

    <abbr title="World Wide Web">WWW</abbr><br><abbr title="Real Sim ...

  10. Jmeter接口测试-获取所有任务API

    获取所有任务 GET /api/tasks 接口获取所有的任务,该接口需要鉴权. 注意,默认情况下鉴权是关闭的.请确保app.coffee中的app.use(express_jwt(secret: j ...