• 2019牛客暑期多校训练营(第五场)


    #include<bits/stdc++.h>
    
    using namespace std;
    int n;
    int main(){
        int T;
        scanf("%d",&T);
        while (T--){
            scanf("%d",&n);
            for (int i=1;i<=n;i++){
                printf("%d",n);
            }
            printf("
    ");
        }
    }

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    char s[1000100];
    ll mod;
    struct node
    {
        ll a[2][2];
    
        node operator*(const node &b) const
        {
            node res;
            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    res.a[i][j] = 0;
                    for (int k = 0; k < 2; k++)
                    {
                        res.a[i][j] = (res.a[i][j] + a[i][k] * b.a[k][j]) % mod;
                    }
                }
            }
            return res;
        }
    };
    
    node pow(node b,ll c)
    {
        node res;
        res.a[0][0] = 1;
        res.a[1][0] = 0;
        res.a[0][1] = 0;
        res.a[1][1] = 1;
        while (c)
        {
            if (c & 1)
            {
                res = res * b;
            }
            c >>= 1;
            b = b * b;
        }
        return res;
    }
    
    int main()
    {
        ll a,b,x0,x1;
        scanf("%lld%lld%lld%lld",&x0,&x1,&a,&b);
        node f;
        f.a[0][0] = 0;
        f.a[1][0] = 1;
        f.a[0][1] = b;
        f.a[1][1] = a;
        node ans;
        ans.a[0][0]=1;
        ans.a[0][1]=0;
        ans.a[1][0]=0;
        ans.a[1][1]=1;
        scanf("%s",s);
        ll len=strlen(s);
        scanf("%lld",&mod);
        for (int i=0; i<len; i++)
        {
            ans=pow(ans,10)*pow(f,s[i]-'0');
        }
        printf("%lld
    ",(x0*ans.a[0][0]+x1*ans.a[1][0])%mod);
    }
    

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll mod=998244353;
    const int N=3050;
    ll C[N][N],n,m,dp[N],ans;
    char s[1000000],t[1000000];
    int main()
    {
        for (int i=1; i<3050; i++)
        {
            C[i][0]=C[i][i]=1;
            for (int j=1; j<i; j++)
            {
                C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
            }
        }
        int T;
        scanf("%d",&T);
        while (T--)
        {
            scanf("%lld%lld",&n,&m);
            scanf("%s",s+1);
            scanf("%s",t+1);
    
            for (int j=0; j<=m+1; j++)
            {
                dp[j]=0;
            }
            dp[1]=(s[n]>t[m]);
            for (int i=n-1; i>=1; i--)
            {
                for (int j=min(m,n-i+1); j>=1; j--)
                {
                    if (s[i]>t[m-j+1])
                    {
                        dp[j]=(dp[j]+C[n-i][j-1])%mod;
                        ////如果i位  s更大  ,可以由长度j-1任意首位递推
                    }
                    if (s[i]==t[m-j+1])
                    {
                        dp[j]=(dp[j]+dp[j-1])%mod;
                    }
                }
            }
            ans=dp[m];
            for (int i=1; i<=n; i++)
            {
                if (s[i]!='0')
                {
                    for (int j=m; j+i<=n; j++)
                    {
                        ans=(ans+C[n-i][j])%mod;
                    }
                }
            }
            printf("%lld
    ",(ans+mod)%mod);
        }
    }

  • 相关阅读:
    订单号生成规则
    mysql启动错误:mysql.sock丢失
    【转】Nginx服务并发过10万的Linux内核优化配置
    代理(正向代理)跟反向代理的区别
    php socket编程入门
    CentOS更改yum源与更新系统
    查看github.com上代码star排行
    html-3,table 表格标签 tr th td caption thead tbody tfoot 的简单使用
    html-2, a img ul li ol dl dt dd 标签与列表标签的简单使用
    html基本标签介绍及应用
  • 原文地址:https://www.cnblogs.com/Accpted/p/11284323.html
Copyright © 2020-2023  润新知