多項式乘法
之前用fft交了乙個無限wa,懷疑是精度有問題然後就轉向ntt。
關於fft和ntt力薦這兩篇吼文章,講得太吼了!
塔萌講得很好了,我就存個這個模板。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const
int maxn = 1
<< 18;
//const int maxm = (int)(log(maxn))+3; //夠用即可
const
int maxm = 23;
const
int mod = (479
<<21)+1; //即質數 1004535809
const
int g = 3; //g^k(k=0,1...mod-2)%mod的值互不相同
/*關於ntt的模數,這裡寫兩個
模數 (479<<21)+1 = 1004535809 原根g = 3,maxn可以開到1<<21
模數 998244353 (uoj模數) 原根g = 3, maxn可以開到1<<23
*/ll quick_pow(ll a, ll b)
b >>= 1;
base *= base;
base %= mod;
}return res;
}ll omg[maxm+1];
void calcomg()
}class ntter
if(j < k)j += k;}}
void ntt(bool dntt = false)}}
if(dntt)
}void mul(ntter &o)
};ntter x, y;
int main()
多項式乘法
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld et reo 吃完了元宵,又開始思考數學問題了。這次他拿了兩個多項式 p mathscrp 和 q mathscrq 他知道這兩個多項式的乘積也是乙個多項式,但他不...
多項式乘法
l1和l2是兩個帶頭結點的單鏈表表示的多項式,編寫演算法計算兩個多項式的乘積,運算結果仍用單鏈表進行儲存 include using namespace std typedef struct lnode lnode,linkedlist 查詢計算結果應該插入的位置 param l 鍊錶的頭結點指標 ...
洛谷P3803 模板 多項式乘法 NTT
題目傳送門 給定乙個n次多項式f x 和乙個m次多項式g x 請求出f x 和g x 的卷積。輸入格式 第一行2個正整數n,m。接下來一行n 1個數字,從低到高表示f x 的係數。接下來一行m 1個數字,從低到高表示g x 的係數。輸出格式 一行n m 1個數字,從低到高表示f x g x 的係數。...