ref

  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. typedef long long ll;
  5. int n, a[270005], b[270005], c[270005], rev[270005];
  6. const int mod=998244353, gg=3, gi=332748118;
  7. int ksm(int a, int b){
  8. int re=1;
  9. while(b){
  10. if(b&1) re = (ll)re * a % mod;
  11. a = (ll)a * a % mod;
  12. b >>= 1;
  13. }
  14. return re;
  15. }
  16. void ntt(int a[], int lim, int opt){
  17. for(int i=0; i<lim; i++)
  18. if(i<rev[i])
  19. swap(a[i], a[rev[i]]);
  20. for(int i=2; i<=lim; i<<=1){
  21. int tmp=i>>1, wn=ksm(opt==1?gg:gi, (mod-1)/i);
  22. for(int j=0; j<lim; j+=i){
  23. int w=1;
  24. for(int k=0; k<tmp; k++){
  25. int tmp1=a[j+k], tmp2=(ll)w*a[j+k+tmp]%mod;
  26. a[j+k] = (tmp1 + tmp2) % mod;
  27. a[j+k+tmp] = (tmp1 - tmp2 + mod) % mod;
  28. w = (ll)w * wn % mod;
  29. }
  30. }
  31. }
  32. if(opt==-1){
  33. int inv=ksm(lim, mod-2);
  34. for(int i=0; i<lim; i++)
  35. a[i] = (ll)a[i] * inv % mod;
  36. }
  37. }
  38. void work(int d, int a[], int b[]){
  39. if(d==1){
  40. b[0] = ksm(a[0], mod-2);
  41. return ;
  42. }
  43. work((d+1)>>1, a, b);
  44. int lim=1, limcnt=0;
  45. while(lim<=d+d) lim <<= 1, limcnt++;
  46. for(int i=0; i<lim; i++)
  47. rev[i] = (rev[i>>1]>>1) | ((i&1)<<(limcnt-1));
  48. for(int i=0; i<d; i++)
  49. c[i] = a[i];
  50. for(int i=d; i<lim; i++)
  51. c[i] = 0;
  52. ntt(c, lim, 1);
  53. ntt(b, lim, 1);
  54. for(int i=0; i<lim; i++)
  55. b[i] = (ll)(2 - (ll)c[i] * b[i] % mod + mod) * b[i] % mod;
  56. ntt(b, lim, -1);
  57. for(int i=d; i<lim; i++)
  58. b[i] = 0;
  59. }
  60. int main(){
  61. cin>>n;
  62. for(int i=0; i<n; i++)
  63. scanf("%d", &a[i]);
  64. work(n, a, b);
  65. for(int i=0; i<n; i++)
  66. printf("%d ", b[i]);
  67. printf("\n");
  68. return 0;
  69. }

luogu4238 【模板】多项式求逆的更多相关文章

  1. 洛谷.4238.[模板]多项式求逆(NTT)

    题目链接 设多项式\(f(x)\)在模\(x^n\)下的逆元为\(g(x)\) \[f(x)g(x)\equiv 1\ (mod\ x^n)\] \[f(x)g(x)-1\equiv 0\ (mod\ ...

  2. 洛谷 P4238 [模板] 多项式求逆

    题目:https://www.luogu.org/problemnew/show/P4238 看博客:https://www.cnblogs.com/xiefengze1/p/9107752.html ...

  3. [模板][P4238]多项式求逆

    NTT多项式求逆模板,详见代码 #include <map> #include <set> #include <stack> #include <cmath& ...

  4. 2018.12.30 洛谷P4238 【模板】多项式求逆

    传送门 多项式求逆模板题. 简单讲讲? 多项式求逆 定义: 对于一个多项式A(x)A(x)A(x),如果存在一个多项式B(x)B(x)B(x),满足B(x)B(x)B(x)的次数小于等于A(x)A(x ...

  5. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)

    手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...

  6. P4238 【模板】多项式求逆

    思路 多项式求逆就是对于一个多项式\(A(x)\),求一个多项式\(B(x)\),使得\(A(x)B(x) \equiv 1 \ (mod x^n)\) 假设现在多项式只有一项,显然\(B(x)\)的 ...

  7. LG4238 【【模板】多项式求逆】

    前言 学习了Great_Influence的递推实现,我给大家说一下多项式求逆严格的边界条件,因为我发现改动一些很小的边界条件都会使程序出错.怎么办,背代码吗?背代码是不可能,这辈子都不会背代码的.理 ...

  8. FFT模板 生成函数 原根 多项式求逆 多项式开根

    FFT #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> ...

  9. [洛谷P4238]【模板】多项式求逆

    题目大意:多项式求逆 题解:$ A^{-1}(x) = (2 - B(x) * A(x)) \times B(x) \pmod{x^n} $ ($B(x)$ 为$A(x)$在$x^{\lceil \d ...

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

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

随机推荐

  1. Linux下apt-get的软件一般安装路径

    apt-get安装目录和安装路径:apt-get 下载后,软件所在路径是:/var/cache/apt/archivesubuntu 默认的PATH为PATH=/home/brightman/bin: ...

  2. nbu集群Alwayson相关问题

    Alwayson 1. Alwayson 是否依赖于域环境? 答: 是, alwayson依赖于故障转移群集(只有在故障转移群集中的SQL Server 才能启动高可行性组功能),而故障转移群集愈依赖 ...

  3. html上传图片(进度条变化)、音乐

    <html> <head> <title>$Title$</title> </head> <link href="css/b ...

  4. Extjs treePanel 的treestore重复加载问题解决

    在Extjs 4.2.2 中构建一个treePanel 发现设置rootVisible后 ,treeStore中设置的autoLoad:false不启作用,在组件初始化的时候即加载数据源,造成数据重复 ...

  5. mac启动springboot失败,8080端口被占用,mac命令行关闭端口

    如下图,idea启动springboot失败,8080端口被占用 Error starting ApplicationContext. To display the conditions report ...

  6. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 本文出自方志朋的博客 一.spring ...

  7. 微信小程序已发布版本vconsole仍出现问题解决办法

    解决办法很简单,进入小程序的体验或者开发版,点击关闭调试,再次进入小程序,就不会出现了

  8. [POI2008]MAF-Mafia(图论,贪心)

    题目描述 Mob feud rages in Equatorial Byteotia. The mob bosses have come to the country's capital, Byteb ...

  9. 2018 Wannafly summer camp Day2--Utawarerumono

    Utawarerumono 描述 题目描述: 算术是为数不多的会让久远感到棘手的事情.通常她会找哈克帮忙,但是哈克已经被她派去买东西了.于是她向你寻求帮助. 给出一个关于变量x,y的不定方程ax+by ...

  10. leetcode笔记(六)740. Delete and Earn

    题目描述 Given an array nums of integers, you can perform operations on the array. In each operation, yo ...