刚学OI1e-INF 秒萌新求值常系数齐次线性递推
查看原帖
刚学OI1e-INF 秒萌新求值常系数齐次线性递推
455490
Sharpsmile楼主2022/6/17 08:57

放在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;
    }
2022/6/17 08:57
加载中...