• 纪念一下刷题量破百的倍数的日子


    07 27

    第四百道是用sbDP A的。。。

    f[0][500][500]=1;
        int p=0;
        F(i,1,n){
            p^=1;
            F(j,1,999){
                f[p][j][500]=(f[p^1][j-1][500]+f[p^1][j+1][500])%mod;
                f[p][500][j]=(f[p^1][500][j-1]+f[p^1][500][j+1])%mod;
            }
            f[p][500][500]=(f[p^1][501][500]+f[p^1][499][500])%mod+(f[p^1][500][499]+f[p^1][500][501])%mod;
            f[p][500][500]%=mod;
            f[p][0][500]=f[p^1][1][500];
            f[p][500][0]=f[p^1][500][1];
            f[p][1000][0]=f[p^1][999][500];
            f[p][0][1000]=f[p^1][0][999];
        }
        printf("%d",f[n&1][500][500]);
    View Code

     0907

    第五百道是考试时候A的。考完以后挺长时间才发现自己都502了hhh

    运用了数学课上自己去讲的一道题的小性质。路丽姐姐教你组合数。

    测试39:工业题

    #include<bits/stdc++.h>
    #define F(i,a,b) for(rg int i=a;i<=b;++i)
    #define rg register
    #define LL long long
    #define il inline
    #define pf(a) printf("%lld ",a)
    #define phn puts("")
    using namespace std;
    #define int LL
    #define N 600010
    int read();
    int n,m,a,b;
    int f[600010],g[600010],jc[N<<1],inv[N<<1],aj[N<<1],bj[N<<1];
    const int mod=998244353;
    il int qpow(int x,int k){x%=mod;int s=1;for(;k;x=x*x%mod,k>>=1)if(k&1)s=s*x%mod;return s;}
    il int C(int a,int b){
        if(b>a)return 0;
        return jc[a]*inv[b]%mod*inv[a-b]%mod;
    }
    signed main(){
    //    freopen("a_sample2.in","r",stdin);
        n=read();m=read();a=read()%mod;b=read()%mod;
        jc[0]=1;
        F(i,1,n+m)jc[i]=jc[i-1]*i%mod;
        inv[n+m]=qpow(jc[n+m],mod-2);
        for(int i=n+m;i>=1;--i)inv[i-1]=inv[i]*i%mod;
        aj[0]=bj[0]=1;
        F(i,1,n+m)aj[i]=aj[i-1]*a%mod,bj[i]=bj[i-1]*b%mod;
        rg int x=0,ans=0;
        F(i,1,n){
            x=read()%mod;
            ans+=x*C(m-1+n-i,m-1)%mod*aj[m]%mod*bj[n-i]%mod;
            ans%=mod;
        }
        F(i,1,m){
            x=read()%mod;
            ans+=x*C(n-1+m-i,n-1)%mod*aj[m-i]%mod*bj[n]%mod;
            ans%=mod;
        }
        printf("%lld
    ",ans);
    }
    il int read(){
        int s=0;char ch;
        while(ch=getchar(),!isdigit(ch));
        for(;isdigit(ch);s=s*10+(ch^48),ch=getchar());
        return s;
    }
    /*
    g++ 1.cpp -g
    ./a.out
    4 4 3 2
    1 3 5 7
    2 4 6 8
    
    
    */
    /*
    int ans=0;
        ans+=8*16;
        ans+=6*5*16*3;
        ans+=4*15*16*9;
        ans+=2*35*16*27;
        ans+=1*35*8*81;
        ans+=3*15*4*81;
        ans+=5*5*2*81;
        ans+=7*1*81;
        pf(ans);
    */
    View Code

     1014

    第600道是大神题。思维题,但是代码简单。

    #include<bits/stdc++.h>
    #define F(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define pf(a) printf("%d ",a) 
    #define phn puts("")
    using namespace std;
    #define int LL
    int n;
    int a[5005],b[5005];
    LL f[2][5005],g[5005];
    const int mod=1e9+7;
    void swap(int &x,int &y){int t=x;x=y;y=t;}
    signed main(){
            scanf("%lld",&n);
            int las=1;
            int ok=1;
            F(i,1,n){
                scanf("%lld",&a[i]);++a[i];
                if(a[i]<i){
                    if(las!=a[i]){ok=0;break;}
                    b[a[i]]=1;
                    las=i;
                }    
            }
            if(!ok)return puts("0"),0;
            f[1][1]=1;
            int s=0,p=1;
            F(i,2,n-1){
                p^=1;s=0;
                if(b[i]){
                    for(int j=1;j<=i;++j){
                        f[p][j]=s;
                        s=(s+f[!p][j])%mod;
                    }
            }
            else {
                for(int j=i-1;j>=1;--j){    
                    s=(s+f[!p][j])%mod;
                    f[p][j]=s;
                }
            }
            }
            int ans=0;
            F(j,1,n-1)ans=(ans+f[(n-1)&1][j])%mod;
            printf("%lld
    ",ans);
    }
    /*
    g++ 2.cpp 
    ./a.out
    6
    1 2 4 0 5 3
    4
    2 0 3 1
    5
    1 2 3 4 0
    5
    1 2 4 0 3
    3
    1 2 0
    */
    测试71毛二琛
    Informatik verbindet dich und mich. 信息将你我连结。
  • 相关阅读:
    对NumPy中dot()函数的理解
    使用Boostrap框架写一个登录注册界面
    两种方法实现asp.net方案的前后端数据交互(aspx文件、html+ashx+ajax)
    将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile
    [ArcGIS API for JavaScript 4.8] Sample Code-Popups-1-popupTemplate的概念和popup中属性字段值的多种表现形式
    [python爬虫]Requests-BeautifulSoup-Re库方案--robots协议与Requests库实战
    [python爬虫]Requests-BeautifulSoup-Re库方案--Requests库介绍
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-widgets简介
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-popups简介
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-layers简介
  • 原文地址:https://www.cnblogs.com/seamtn/p/11254961.html
Copyright © 2020-2023  润新知