多項式彙總 巨常數

2022-05-27 16:33:11 字數 1542 閱讀 2446

乙個多月前寫的板子,忘了放上來了,今天莫名其妙地想起來了

包含多項式乘法,多項式求逆,多項式除法/取模,多項式exp,多項式ln,多項式求導,多項式積分等基本操作

由於懶癌,這裡直接開vector表示多項式,常數賊大(然後我把一機房人帶壞了

以後可能會寫乙個常數小的多項式板子

#include using namespace std;

const int p = 998244353;

int qpow(int x, int y)

return res;

}void fntt(vector&a, int len, int flag)

} }if (flag == -1)

delete r;

}vectoroperator+(vectora, vectorb)

vectoroperator-(vectora, vectorb)

vectoroperator*(vectora, vectorb)

vectorpoly_inv(vectora)

int n = a.size(), newsz = (n + 1) >> 1;

vectorb(a);

b.resize(newsz);

b = poly_inv(b);

int len = 1;

while (len <= (n << 1)) len <<= 1;

vectorc(a);

fntt(a, len, 1);

fntt(b, len, 1);

for (int i = 0; i < len; i++)

a[i] = ((1ll * b[i] * (2 - 1ll * a[i] * b[i] % p)) % p + p) % p;

fntt(a, len, -1);

a.resize(n);

return a;

}vectorintergal(vectora)

vectorderivation(vectora)

vectorln(vectora)

vectorpoly_r(vectora)

void div(vectorf, vectorg, vector&q, vector&r)

vectorpoly_exp(vectora)

vectorf0 = a;

f0.resize((a.size() + 1) / 2);

f0 = poly_exp(f0);

vectorf;

a[0]++;

f = (a - ln(f0));

f = f0 * f;

f.resize(a.size());

return f;

}int main_luogu3803()

int main_luogu4238()

int main_luogu4725()

int main_luogu4512()

int main_luogu4726()

int main()

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

數學 多項式 多項式求逆

多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...

matlab多項式與非多項式擬合

擬合標準 1 原始資料向量與擬合向量之間的距離最小,該距離的度量一般使用誤差平方和表示,即均方誤差 r q y 22 2 當均方誤差最小時,說明構造的擬合向量與原始向量最為接近,這種曲線擬合的方法稱為最小二乘法 3 計算均方誤差最小時的擬合係數,可以通過微積分中求解極值的方法實現 多項式擬合 1 多...