日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LuoGuP4721:【模板】分治 FFT

發(fā)布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LuoGuP4721:【模板】分治 FFT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Pre

式子變換需要注意一下

Solution

注意到\(f(x)g(x)+f_0=f(x)\)

其實開始我沒看出來,后來發(fā)現(xiàn)仔細分析一下就可以了。

然后式子變換

\(f(x)=\frac{f_0}{1-g(x)}\)

注意這里的\(1-\)是只減常數(shù)項,因為這里的\(f(x)\)\(g(x)\)是指的函數(shù),而不是系數(shù)。

Code

#include <cstdio> #include <queue> #include <cstring> #define ll long long #define xx first #define yy second using namespace std; inline void swap (int &a, int &b) {int c = a;a = b,b = c; } const int N = 250000 + 5, mod = 998244353, inver = 332748118; int nn, g[N], f[N]; inline int add (int u, int v) {return u + v >= mod ? u + v - mod : u + v;} inline int mns (int u, int v) {return u - v < 0 ? u - v + mod : u - v;} inline int mul (int u, int v) {return 1LL * u * v % mod;} inline int qpow (int u, int v) {int tot = 1, base = u % mod;while (v){if (v & 1) tot = mul (tot, base);base = mul (base, base);v >>= 1;}return tot; } int c[N], rev[N]; inline void NTT (int *a, int n, int bit, bool flag) {for (int i = 0; i < n; ++i) {rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (bit - 1));if (i > rev[i]) swap (a[i], a[rev[i]]);}for (int l = 2; l <= n; l <<= 1) {int wi = qpow (flag ? inver : 3, (mod - 1) / l);int m = l / 2;for (int *k = a; k != a + n; k += l) {int w = 1;for (int i = 0; i < m; ++i) {int tmp = mul (k[i + m], w);k[i + m] = mns (k[i], tmp);k[i] = add (k[i], tmp);w = mul (w, wi);}}}int tmp = qpow (n, mod - 2);for (int i = 0; i < n && flag; ++i) {a[i] = mul (a[i], tmp);} } inline void Inv (int *a, int *b, int deg) {if (deg == 1) {b[0] = qpow (a[0], mod - 2);return ;}Inv (a, b, (deg + 1) >> 1);int n = 1, bit = 0;while (n < (deg << 1)) n <<= 1, ++bit;for (int i = 0; i < deg; ++i) c[i] = a[i]; for (int i = deg; i < n; ++i) c[i] = 0;NTT (c, n, bit, false);NTT (b, n, bit, false);for (int i = 0; i < n; ++i) b[i] = mns (mul (2, b[i]), mul (c[i], mul (b[i], b[i])));NTT (b, n, bit, true);for (int i = deg; i < n; ++i) b[i] = 0; } int main () {#ifdef chitongzfreopen ("x.in", "r", stdin);#endifscanf ("%d", &nn);for (int i = 1; i <= nn - 1; ++i) scanf ("%d", &g[i]), g[i] = mns (mod, g[i]);g[0] = add (g[0], 1);Inv (g, f, nn);for (int i = 0; i < nn; ++i) printf ("%d ", f[i]);puts ("");return 0; }

Conclusion

注意一下什么時候系數(shù)減法,什么時候常熟減法。

轉(zhuǎn)載于:https://www.cnblogs.com/ChiTongZ/p/11351252.html

總結(jié)

以上是生活随笔為你收集整理的LuoGuP4721:【模板】分治 FFT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91九色高潮 | 亚洲va久久久噜噜噜无码久久 | 欧美日韩生活片 | 放荡的少妇2欧美版 | 深田咏美中文字幕 | 日本一级黄色大片 | 最近高清中文在线字幕在线观看 | 国产免费一区视频观看免费 | 爱爱免费视频 | 国产天堂网 | 日少妇的逼 | 日本一区二区三区精品视频 | 欧美xxxx888| 一区二区三区啪啪啪 | 公交顶臀绿裙妇女配视频 | 成人听书哪个软件好 | 惊艳大片mv视频 | 国产睡熟迷奷系列精品视频 | 国产精品伦理一区二区 | 粉色视频免费观看 | 自拍偷拍亚洲视频 | 国产农村妇女aaaaa视频 | 国产精成人品免费观看 | 蜜臀一区 | 99久久精品国产一区二区成人 | 高清人妖shemale japan| 国产精品久久久久久久久岛 | 麻豆av网站 | 牛牛av在线| 极品一区 | 国产欧美一级 | 久久久夜色精品 | 97人人精品 | 嫩模啪啪 | 麻豆av电影在线观看 | 亚洲欧美高清 | 成年人在线视频 | 在线免费观看黄网 | 一级伦理农村妇女愉情 | 日韩欧美在线观看一区二区三区 | 国产福利在线导航 | 福利电影一区二区 | 亚洲美女性生活视频 | 在线成人免费观看 | 热久久久久久 | 爱综合网 | 人人草人人草 | 人妻少妇偷人精品久久性色 | 夜夜伊人 | 国产性猛交96| 老熟妇高潮一区二区三区 | 高h视频在线播放 | av二区在线| 特级毛片www | 天天爱综合网 | 国产视频aaa | 国产图片一区 | 精品中文字幕在线播放 | 久久精品一 | 在线免费观看一级片 | 亚av在线 | 精品国产精品三级精品av网址 | 最近中文在线观看 | 久一视频在线观看 | 日韩有码在线视频 | 亚洲av无码国产精品久久 | 亲切的金子餐桌片段的金子 | 干日本少妇首页 | 天天摸天天插 | 毛片一区 | 亚洲怡红院av| 国产黄色免费观看 | 精品丰满少妇一区二区三区 | 成人性生交视频免费观看 | 国产精品人妻一区二区三区 | 中文字幕色图 | 丰满少妇乱子伦精品看片 | 骚视频在线观看 | 国产精品对白刺激久久久 | 欧美日韩www| 欧美在线观看成人 | 欧美风情第一页 | 韩国中文字幕hd久久精品 | 色桃视频 | 一区二区精品久久 | 一区二区久久 | 在线观看福利电影 | 日本熟女毛茸茸 | 精品一区二区在线看 | 欧美黄色免费观看 | 亚洲精品视频一区 | 香蕉视频免费 | 日本丰满熟妇hd | 69久人妻无码精品一区 | 北京少妇xxxx做受 | 激情五月婷婷小说 | 日本免费一区二区在线 | 亚洲综合视频在线观看 | 久九九 |