zoukankan      html  css  js  c++  java
  • 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;    
    }
    
  • 相关阅读:
    java中 == 与equals 的区别
    java中的多线程 // 基础
    MySQL-锁机制
    将博客搬至CSDN
    MySQL-事务
    MySQL-存储过程
    MySQL-触发器
    MySQL-视图
    Redis设置Auth认证保护
    PHP目前常见的五大运行模式
  • 原文地址:https://www.cnblogs.com/HpuAcmer/p/2496395.html
Copyright © 2011-2022 走看看