当前位置: 首页 > news >正文

HDU 6170 - Two strings | 2017 ZJUT Multi-University Training 9

/*
HDU 6170 - Two strings [ DP ]  |  2017 ZJUT Multi-University Training 9
题意:
	定义*可以匹配任意长度,.可以匹配任意字符,问两串是否匹配
分析:
	dp[i][j] 代表B[i] 到 A[j]全部匹配
	然后根据三种匹配类型分类讨论,可以从i推到i+1
	复杂度O(n^2)
*/
#include <bits/stdc++.h>
using namespace std;
const int N = 2505;
int t;
char a[N], b[N];
int la, lb;
bool dp[N][N];
int main()
{
    scanf("%d", &t);
    while (t--)
    {
        scanf("%s%s", a+1, b+1);
        la = strlen(a+1);
        lb = strlen(b+1);
        memset(dp, 0, sizeof(dp));
        dp[0][0] = 1;
        for (int i = 1; i <= lb; i++)
        {
            if (b[i] == '.')
            {
                for (int j = 1; j <= la; j++) dp[i][j] = dp[i-1][j-1];
            }
            else if (b[i] == '*')
            {
                for (int j = 0; j <= la; j++) dp[i][j] = dp[i-2][j];
                for (int j = 0; j <= la; )
                {
                    if (dp[i-1][j])
                    {
                        int k = j;
                        while (a[k] == a[j])
                        {
                            dp[i][k] = 1;
                            k++;
                        }
                        j = k;
                    }
                    else j++;

                }
            }
            else
            {
                for (int j = 1; j <= la; j++)
                    if (dp[i-1][j-1] && a[j] == b[i])
                        dp[i][j] = 1;
            }
        }
        if (dp[lb][la]) puts("yes");
        else puts("no");
    }
}

  

转载于:https://www.cnblogs.com/nicetomeetu/p/7420754.html

相关文章:

  • WebLogic 10.3.6与JDK 1.7的兼容问题
  • vnx通过iscsi连接esxi主机,并挂载nfs和block
  • 栈和队列
  • 查看索引的状态
  • 二级MSOffice高级应用考试大纲(2013年版)
  • POJ 1830 开关问题 高斯消元
  • CAN协议,系统结构和帧结构
  • New Concept English Two 11 28
  • centos 配置sudo记录日志
  • Android图文混排实现方式详解
  • crossdomain.xml解决跨域问题
  • git克隆远程项目并创建本地对应分支
  • compile FFMPEG under windows
  • gulp 和 Browsersync 的联合使用
  • 大数据计算框架与平台
  • 【Amaple教程】5. 插件
  • 【RocksDB】TransactionDB源码分析
  • canvas 高仿 Apple Watch 表盘
  • Codepen 每日精选(2018-3-25)
  • ERLANG 网工修炼笔记 ---- UDP
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • hadoop集群管理系统搭建规划说明
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前端临床手札——文件上传
  • 小程序开发之路(一)
  • - 转 Ext2.0 form使用实例
  • No resource identifier found for attribute,RxJava之zip操作符
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • "无招胜有招"nbsp;史上最全的互…
  • #define,static,const,三种常量的区别
  • #pragma pack(1)
  • %check_box% in rails :coditions={:has_many , :through}
  • (3)选择元素——(17)练习(Exercises)
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一) springboot详细介绍
  • (一)认识微服务
  • (转)h264中avc和flv数据的解析
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .gitignore文件_Git:.gitignore
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net 反编译_.net反编译的相关问题
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET的微型Web框架 Nancy
  • @DataRedisTest测试redis从未如此丝滑
  • @RestController注解的使用
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [20161214]如何确定dbid.txt
  • [Android] 修改设备访问权限
  • [Android]一个简单使用Handler做Timer的例子