zoukankan      html  css  js  c++  java
  • luogu_P2679 子串

    dp题

    状态自己想出来了,但是初始化没有弄好,看了题解

    #include<iostream>
    #include<cstdio>
    
    #define ri register int
    #define u long long
    
    namespace opt {
    
        inline u in() {
            u x(0),f(1);
            char s(getchar());
            while(s<'0'||s>'9') {
                if(s=='-') f=-1;
                s=getchar();
            }
            while(s>='0'&&s<='9') {
                x=(x<<1)+(x<<3)+s-'0';
                s=getchar();
            }
            return x*f;
        }
    
    }
    
    using opt::in;
    
    #define NN 90005
    #define MO 1000000007
    
    #include<cstring>
    
    namespace mainstay {
        
        u N,M,K,f[2][205][205][2];
        
        char a[1005],b[1005];
        
        inline void solve() {
            scanf("%lld%lld%lld",&N,&M,&K);
            scanf("%s%s",a+1,b+1);
            f[0][0][0][0]=f[1][0][0][0]=1;
            for(ri i(1);i<=N;++i){
                for(ri j(1);j<=M;++j){
                    for(ri k(1);k<=K;++k){
                        f[i&1][j][k][0]=(f[i&1^1][j][k][0]+f[i&1^1][j][k][1])%MO;
                        if(a[i]==b[j]) f[i&1][j][k][1]=((f[i&1^1][j-1][k-1][0]+f[i&1^1][j-1][k-1][1])%MO+f[i&1^1][j-1][k][1])%MO;
                        else f[i&1][j][k][1]=0;
                    }
                }
            }
            printf("%lld",(f[N&1][M][K][1]+f[N&1][M][K][0])%MO);
        }
    
    }
    
    int main() {
    
        //freopen("x.txt","r",stdin);
        mainstay::solve();
    
    }
  • 相关阅读:
    js中Frame框架的属性获取(1)
    c#中文件上传(1)
    表单验证Validform
    Mybatis语法笔记
    js的checkbox
    调用微信Js-SDK支付
    调用微信Js-SDK图片
    java后台上传到linux
    web服务器内层溢出
    SpringMVC
  • 原文地址:https://www.cnblogs.com/ling-zhi/p/11850749.html
Copyright © 2011-2022 走看看