多项式求逆入门 板题(Luogu P4238)
- 下面是代码,推导详见 传送门
模板Code
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int mod = 998244353, g = 3, MAXN = 1<<18;
typedef long long LL;
inline void change(int arr[], const int &len)
{
register int i, j, k;
for(i = 1, j = len/2; i < len-1; ++i)
{
if(i < j) swap(arr[i], arr[j]);
k = len/2;
while(j >= k) j -= k, k >>= 1;
j += k;
}
}
inline int qmul(int a, int b, const int &c)
{
register int ret = 1;
while(b)
{
if(b&1) ret = (LL)ret * a % c;
a = (LL)a * a % c; b >>= 1;
}
return ret;
}
inline void NTT(int arr[], const int &len, const int &flg)
{
change(arr, len);
register int wn, w, A0, wA1, i, j, k;
for(i = 2; i <= len; i <<= 1)
{
if(~flg) wn = qmul(g, (mod-1)/i, mod);
else wn = qmul(g, (mod-1) - (mod-1)/i, mod);
for(j = 0; j < len; j += i)
{
w = 1;
for(k = j; k < j + i/2; ++k)
{
A0 = arr[k], wA1 = (LL)w * arr[k + i/2]% mod;
arr[k] = (A0 + wA1) % mod;
arr[k + i/2] = ((A0 - wA1) % mod + mod) % mod;
w = (LL)w * wn % mod;
}
}
}
if(flg == -1)
{
register int rev = qmul(len, mod-2, mod);
for(i = 0; i < len; ++i)
arr[i] = (LL)arr[i] * rev % mod;
}
}
int a[MAXN], b[MAXN], c[MAXN];
void work(const int °, int a[], int b[])
{
if(deg == 1) { b[0] = qmul(a[0], mod-2, mod); return; }
work(deg+1>>1, a, b);
register int len = 1;
while(len < deg<<1) len <<= 1;
for(int i = 0; i < deg; ++i) c[i] = a[i];
for(int i = deg; i < len; ++i) c[i] = 0;
NTT(c, len, 1); NTT(b, len, 1);
for(int i = 0; i < len; ++i)
b[i] = (2 - (LL)b[i]*c[i]%mod + mod) % mod * b[i] % mod;
NTT(b, len, -1);
for(int i = deg; i < len; ++i) b[i] = 0;
}
int n;
void init()
{
scanf("%d", &n);
for(int i = 0; i < n; ++i)
scanf("%d", &a[i]);
}
void solve()
{
work(n, a, b);
for(int i = 0; i < n; ++i)
printf("%d%c", b[i], i == n-1 ? '\n' : ' ');
}
int main ()
{
init(); solve();
}
多项式求逆入门 板题(Luogu P4238)的更多相关文章
- luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)
手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...
- 洛谷P4238【模板】多项式求逆
洛谷P4238 多项式求逆:http://blog.miskcoo.com/2015/05/polynomial-inverse 注意:直接在点值表达下做$B(x) \equiv 2B'(x) - A ...
- 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 ...
- [模板][P4238]多项式求逆
NTT多项式求逆模板,详见代码 #include <map> #include <set> #include <stack> #include <cmath& ...
- P4238 【模板】多项式求逆
思路 多项式求逆就是对于一个多项式\(A(x)\),求一个多项式\(B(x)\),使得\(A(x)B(x) \equiv 1 \ (mod x^n)\) 假设现在多项式只有一项,显然\(B(x)\)的 ...
- [洛谷P4238]【模板】多项式求逆
题目大意:多项式求逆 题解:$ A^{-1}(x) = (2 - B(x) * A(x)) \times B(x) \pmod{x^n} $ ($B(x)$ 为$A(x)$在$x^{\lceil \d ...
- hdu 5730 Shell Necklace [分治fft | 多项式求逆]
hdu 5730 Shell Necklace 题意:求递推式\(f_n = \sum_{i=1}^n a_i f_{n-i}\),模313 多么优秀的模板题 可以用分治fft,也可以多项式求逆 分治 ...
- NTT+多项式求逆+多项式开方(BZOJ3625)
定义多项式$h(x)$的每一项系数$h_i$,为i在c[1]~c[n]中的出现次数. 定义多项式$f(x)$的每一项系数$f_i$,为权值为i的方案数. 通过简单的分析我们可以发现:$f(x)=\fr ...
- BZOJ 3456: 城市规划 与 多项式求逆算法介绍(多项式求逆, dp)
题面 求有 \(n\) 个点的无向有标号连通图个数 . \((1 \le n \le 1.3 * 10^5)\) 题解 首先考虑 dp ... 直接算可行的方案数 , 容易算重复 . 我们用总方案数减 ...
随机推荐
- 嵌入式02 STM32 实验07 串口通信
STM32串口通信(F1系列包含3个USART和2个UART) 一.单片机与PC机串行通信研究目的和意义: 单片机自诞生以来以其性能稳定,价格低廉.功能强大.在智能仪器.工业装备以及日用电子消费产品中 ...
- Jenkins基于https的k8s配置
一.摘要 jenkins 连接低版本的k8s时,不需要验证.但是新版本的启用了https和角色管理 二.安装kubernetes插件 登录jenkins,点击 Manage Jenkins --> ...
- 【1】【leetcode-5】最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: "bab"注意: " ...
- mysql 查询导出 excel 中文乱码 解决 --default-character-set=gbk
mysql --default-character-set=gbk -uroot -p -D open_fusion -e " select * from table1 " ...
- Quartz基础调度框架-第一篇控制台
Quartz基础调度框架 Quartz核心的概念:scheduler任务调度.Job任务.Trigger触发器.JobDetail任务细节 结构 Conf 在这个基本结构里 是用来存放配置 publi ...
- modbus协议使用小记
下载了libmodbus库,交叉编译后运行,总是接收回复时不正确.原因不明. 由于使用到modbus的需求比较简单,所以选择直接拼出modbus的请求报文,然后用串口直接发送和接收的方式, 拼modb ...
- for循环优化
转自:https://blog.csdn.net/lfc18606951877/article/details/78592823 1:多个for循环时,遵循外小内大(从外至里,循环对象size要从小到 ...
- 爬虫多次爬取时候cookie的存储用于登入
一.用requests模块自动保存(保存缓存中) 构建一个session对象session = requests.session() 用构建的session代替requests进行访问他就会自动存啦 ...
- 【转载】如何查看sqlserver客户端的版本号信息
在sqlserver的使用过程中,有时候可能会因为sqlserver版本过低等原因的导致无法附加以及还原数据库,我们可以通过sql server management studio软件的帮助菜单参看到 ...
- HTML实用文本框样式
输入框景背景透明: <input style="background:transparent;border:1px solid #ffffff"> 鼠标划过输入框,输入 ...