求助多项式

P5205 【模板】多项式开根

@[Karry5307](/user/60990) 多项式神仙 /se 快来帮忙啊 /se /qq /se (不是
by MistZero @ 2020-05-21 19:35:45


@[limaopipi2022](/user/160839) 改完的代码: ```cpp void sqrt(ll*f, int m) { #define b1 _s4 #define b2 _s5 int i, n, len; for (n = 1; n < m; n <<= 1); b1[0] = 1; for (len = 2; len <= n; len <<= 1) { for (i = 0; i < (len >> 1); ++i) b2[i] = (b1[i] << 1) % mod; clr(b2 + len / 2, len / 2); inv(b2, len); clr(b1 + len / 2, len / 2); NTT(b1, 1, len); times(b1, b1, len); NTT(b1, 0, len); for (i = 0; i < len; ++i) b1[i] = (f[i] + b1[i]) % mod; NTT(b1, 1, len << 1); NTT(b2, 1, len << 1); times(b1, b2, len << 1); NTT(b1, 0, len << 1); } cpy(f, b1, m); clr(b1, n + n); clr(b2, n + n); #undef b1 #undef b2 } ```
by 热言热语 @ 2020-05-21 19:47:15


另:函数里开数组时在前面加 `static` 相当于开了只供这个函数使用的全局变量,就不用 `#define` 了。 ```cpp void sqrt(ll* f, int m) { static ll b1[M], b2[M]; } ```
by 热言热语 @ 2020-05-21 19:50:27


@[热言热语](/user/37132) A了,谢谢
by Prean @ 2020-05-21 19:51:37


|