放在Xcode上跑会RE,但是放在你谷IDE上就能跑过样例。但是交上去全T,不过本萌新看了半天一直觉得复杂度是对的啊(
代码如下(节选,多项式乘法:mul(A次数,B次数,A,B,答案),多项式取模:mod(A次数,B次数,A,B,答案),复杂度均是nlogn)
inline int sol(int n,int k,int *a,int *f){
pol X;
pol Q,A;
pol Z;
Q.f[0]=1;
A.f[1]=1;
for(int i=0;i<k;i++)
X.f[i]=M-f[i];
X.f[k]=1;
while(n){
if(n&1) mul(k+1,k+1,Q,A,Z),mod(2*k+1,k+1,Z,X,Q);
mul(k,k,A,A,Z);mod(2*k+1,k+1,Z,X,A);
n>>=1;
}
int res=0;
for(int i=0;i<k;i++)
res=(res+a[i]*Q.f[i]%M)%M;
return (res+M)%M;
}