下面这个代码,多项式长度要开 2 倍才能 AC ,请问这是什么原理啊,萌新不懂。
(代码中的 m 为题目中的 k)
poly qpow(poly a,int x,poly mo){
poly res;int mx=m*2;
res.resize(1),res[0]=1;
for(;x;x>>=1){
if(x&1) res=res*a,res=modulo(res,mo);
a=a*a; if(a.size()>mx)a.resize(mx);
a=modulo(a,mo);
}return res;
}