zoukankan      html  css  js  c++  java
  • HDU

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1501

    #include <iostream>
    #include <string.h>
    using namespace std;
    /****************************************************************************************************************
                题意:给定三个字符串 s1,s2,s3。判断s3是否可以通过s1,s2字符的顺序得到
                思路:
                1,刚开始也是想到搜索之类的,然后看到网上说记忆化搜索!记忆化,换而言之就是dp啊
                2,最优子结构分析:如上例,如果A、B可以组成C,那么,C最后一个字母e,必定是 A 或 C 的最后一个字母组成。
                3,C去除除最后一位,就变成是否可以求出 A-1和B 或者 A与B-1 与 是否可以构成 C-1
                4,状态转移方程:
                    用f[i][j] 表示 表示A前 i 为 和B 前j 位是否可以组成 C的前i+j位
                    dp[i][j]= (dp[i-1][j]&&(a[i]==c[i+j]))||(dp[i][j-1]&&(b[j]==c[i+j]))
    ****************************************************************************************************************/
    string s1,s2,s3;
    int dp[205][205];
    int main()
    {
        int T;
        cin>>T;
        int num=1;
        while(T--)
        {
            cin>>s1>>s2>>s3;
    
            memset(dp,0,sizeof(dp));
            for(int i = 0;i < s1.size();i ++)
                if(s1[i] == s3[i])
                    dp[i+1][0]=1;
            for(int i = 0;i < s2.size();i ++)
                if(s2[i] == s3[i])
                    dp[0][i+1]=1;
    
            for(int i = 1;i <= s1.size();i ++)
                for(int j = 1;j <= s2.size();j ++)
                    dp[i][j]=((dp[i-1][j] && s1[i-1] == s3[i+j-1]) || (dp[i][j-1] && s2[j-1] == s3[i+j-1]));
            cout<<"Data set "<<num++<<": ";
            if(dp[s1.size()][s2.size()])
                cout<<"yes"<<endl;
            else
                cout<<"no"<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    Laravel源码解析 — 服务容器
    Java日志框架中需要判断log.isDebugEnabled()吗?
    使用C语言实现线性表
    new-delete
    webrtc-AudioprcessingModule 3A算法demo
    关于iPhone语音备忘录访问
    关于音频通话耗时
    关于Windows上使用OpenAL API声源音效
    c++ 类术语
    二分法查找
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352000.html
Copyright © 2011-2022 走看看