zoukankan      html  css  js  c++  java
  • hdu 6170

    dp:

    http://blog.csdn.net/qq_28954601/article/details/77484676

    #include <bits/stdc++.h>
    #define mt(a,b) memset(a,b,sizeof(a))
    using namespace std;
    const int maxn = 2525;
    bool dp[maxn][maxn];
    char s[maxn];
    char t[maxn];
    int main()
    {
        int T;
        scanf("%d",&T);
        getchar();
        while(T--)
        {
            scanf("%s",s+1);
            scanf("%s",t+1);
            s[0]=t[0]='1';
            int len1=strlen(s)-1;
            int len2=strlen(t)-1;
            mt(dp,false);
            dp[0][0]=true;
            for(int i=1;i<=len2;++i){
                if(i==2&&t[i]=='*') dp[i][0]=true;
                for(int j=1;j<=len1;++j){
                    if(t[i]==s[j]||t[i]=='.'){
                        dp[i][j]=dp[i-1][j-1]; //如果正常匹配的话,dpij就是从dpi-1j-1转移过来的
                    }else if(t[i]=='*'){
                        dp[i][j]=dp[i-1][j]|dp[i-2][j];//如果这个*号的前面一个或者前面的第二个可以匹配到j位置的,则可以,我觉得是使用在多个*的时候的
                        if((dp[i-1][j-1]||dp[i][j-1])&&s[j-1]==s[j]) //如果是sj-1==sj的话,可以自己举例子看看就会清楚这是什么情况了
                            dp[i][j] = true;
                    }
                }
            }
            puts(dp[len2][len1]?"yes":"no");
        }
        return 0;
    }
  • 相关阅读:
    jQuery ajax传多个参数
    PHP 上传图片和安全处理
    PHP CI框架email类发送邮件
    2016-4-7
    jquery 轮播图
    CI控制器的继承问题
    2016-4-1
    2016-3-31 总结
    php内置函数call_user_func()
    discuz-目录
  • 原文地址:https://www.cnblogs.com/chinacwj/p/7416704.html
Copyright © 2011-2022 走看看