zoukankan      html  css  js  c++  java
  • LOJ #6485 LJJ 学二项式定理

    QwQ

    LOJ #6485


    题意

    求题面中那个算式


    题解

    墙上暴利

    设$ f(x)=(sx+1)^n$

    假设求出了生成函数$ f$的各项系数显然可以算出答案

    因为模$ 4$的缘故只要对于每个余数算出次数模4为该余数的系数和即可

    求系数和强上单位根反演即可

    求模4余1相当于求模4余0之后平移一位即乘上$ x^{-1}$

    好像讲的非常不清楚啊...


    代码

    #include<ctime>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #define p 998244353
    #define rt register int
    #define ll long long
    using namespace std;
    inline ll read(){
        ll x=0;char zf=1;char ch=getchar();
        while(ch!='-'&&!isdigit(ch))ch=getchar();
        if(ch=='-')zf=-1,ch=getchar();
        while(isdigit(ch))x=x*10+ch-'0',ch=getchar();return x*zf;
    }
    void write(ll y){if(y<0)putchar('-'),y=-y;if(y>9)write(y/10);putchar(y%10+48);}
    void writeln(const ll y){write(y);putchar('
    ');}
    int k,m,n,x,y,z,cnt,ans,a[4],w[4];
    int ksm(int x,int y){
        int ans=1;
        for(rt i=y;i;i>>=1,x=1ll*x*x%p)if(i&1)
            ans=1ll*ans*x%p;
        return ans;
    }
    int main(){
        w[0]=1;w[1]=ksm(3,(p-1)/4);w[2]=1ll*w[1]*w[1]%p;w[3]=1ll*w[1]*w[2]%p;
        for(rt T=read();T;T--){
            n=read()%(p-1);int s=read();
            for(rt i=0;i<4;i++)a[i]=read();
            int sum=0;
            for(rt j=0;j<4;j++){
                const int v=ksm(1ll*s*w[j]%p+1,n);
                for(rt i=0;i<4;i++){
                    (sum+=1ll*a[i]*v%p*w[4-i*j&3]%p)%=p;
                }
            }
            writeln(1ll*sum*ksm(4,p-2)%p);
        }
        return 0;
    }
  • 相关阅读:
    springboot/springcloud 启动速度慢 卡死问题
    数据分析路线
    java杂
    贪吃蛇
    设计模式的七大原则
    Java--GUI编程(三)总结AWT/Swing
    时间复杂度
    Java--GUI编程(二)简易加法计算器
    Java--GUI编程(一)
    Java--this与super区别
  • 原文地址:https://www.cnblogs.com/DreamlessDreams/p/10266580.html
Copyright © 2011-2022 走看看