• POJ 2192 (DP)


    题目:http://poj.org/problem?id=2192

    题意:从a、b串组合出c串,如果可以,输出“yes”,否则输出“no”

          组合规则:不能乱序,只能顺序从a.b串中去字符。

    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    using namespace std;
    
    char a[201],b[201],c[402];
    /*
    flag[i][j]== true ;表示 a的前i个,b的前j个可以组合出c的前i+j个 
    flag[i][j]== false;表示 a的前i个,b的前j个不可以组合出c的前i+j个
    */
    bool flag[201][201];
    
    int main()
    {
        int T,la,lb,i,j,cc=1;
        scanf("%d",&T);
               
           do
           {
              scanf("%s%s%s",a,b,c);
              la = strlen(a);         
              lb = strlen(b);
              memset(flag,false,sizeof(flag));
              
              flag[0][0] = true;//都是空的,起点设置为true 
                       
              for(i = 0 ; i <= la ; ++i )          
              for(j = 0 ; j <= lb ; ++j )
              {
                    if( i>0 && flag[i-1][j] && a[i-1] == c[i+j-1])  flag[i][j] = 1;
                    if( j>0 && flag[i][j-1] && b[j-1] == c[i+j-1])  flag[i][j] = 1; 
              }
             
              printf("Data set %d: ",cc++);//刚开始把这个变量设置为c,害我调试好久 
              if(flag[la][lb])
                puts("yes");
              else 
                puts("no");
                        
           }while(--T);
           
        //system("pause");
        return 0;    
    }
    
  • 相关阅读:
    关于求LCA三种方法
    逆序对与本质不同的逆序对
    缩点+割点(tarjan)
    关于线段树
    引爆点
    0 基础认知产品经理
    一款 App 开发到上架
    坚持+时间管理
    测试流程
    Java学习笔记--字符串String、StringBuffer和StringBuilder
  • 原文地址:https://www.cnblogs.com/HpuAcmer/p/2496395.html
Copyright © 2020-2023  润新知