ln 是拷过来的没错.. 只可能是 exp 写错了QAQ
by huangzirui @ 2020-09-28 19:21:04
@[huangzirui](/user/35891) 不一定,就比如我求逆的板子有个地方写错了但是他过了然后最近做题用的时候发现不对de了半天才发现求逆就错了(
by Ame__ @ 2020-09-28 19:23:50
orz hzr 随手切多项式
by PrincessQi @ 2020-09-28 19:25:56
@[Ame__](/user/245875)
多次调用 ln 时数组没清空((
我人傻了
by huangzirui @ 2020-09-28 19:26:05
@[huangzirui](/user/35891) 看吧我就说是吧(
by Ame__ @ 2020-09-28 19:26:33
@[Ame__](/user/245875) 然而交到板子上只会被调用一次还看不出来 233333333
by huangzirui @ 2020-09-28 19:27:17
多项式题挂了大概率是清空数组的问题……
by x义x @ 2020-09-28 19:29:25
~~或者忘加 init~~
by x义x @ 2020-09-28 19:29:47
@[huangzirui](/user/35891) 您不打空格我看着难受(,给您一个我的板子你拿去看看吧
```cpp
inline void poly_exp(int *a , int len){
if(len == 1) { a[0] ++; return; }
int len1 = len / 2; int *g = new int[len * 2];
for(int i = 0;i < len1;i ++) g[i] = a[i];
for(int i = len1;i < len * 2;i ++) g[i] = 0;
poly_exp(g , len1);
for(int i = len1;i < len * 2;i ++) g[i] = 0;
int *lng = new int[len * 2];
for(int i = 0;i < len * 2;i ++) lng[i] = g[i];
get_ln(lng , len); a[0] ++;
for(int i = 0;i < len;i ++){ a[i] -= lng[i]; if (a[i] < 0) a[i] += mod; }
NTT(a , len * 2 , 1); NTT(g , len * 2 , 1);
for(int i = 0;i < len * 2;i ++) a[i] = a[i] * 1LL * g[i] % mod;
NTT(a , len * 2 , -1);
for(int i = len;i < len * 2;i ++) a[i] = 0;
// delete []g;
}
```
by Ame__ @ 2020-09-28 19:29:49
thx orz
by huangzirui @ 2020-09-28 19:30:19