DP_字串匹配(HDU_1501)
最优子结构分析:如果A、B可以组成C,C最后一个字母必定是A或B的最后一个字母组成。
C去除除最后一位,变成是否可以求出A-1和B或A和B-1是否可以构成C-1
状态转移方程:用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])
#include <stdio.h> #include <string.h>#define M 202char A[M],B[M],C[M*2]; int dp[M][M];int run() {scanf("%s%s%s",A + 1,B + 1,C + 1);int aLen = strlen(A + 1);int bLen = strlen(B + 1);int cLen = strlen(C + 1);for(int i=1; i<=aLen; i++){if(A[i] == C[i]) dp[i][0] = 1;}for(i=1; i<=bLen; i++){if(B[i] == C[i]) dp[0][i] = 1;}for(i=1; i<=aLen; i++){for(int j=1; j<=bLen; j++){dp[i][j] = (dp[i-1][j] && A[i]==C[i+j]) || (dp[i][j-1] && B[j]==C[i+j]);}}return dp[aLen][bLen]; }int main(int argc, char* argv[]) {#ifdef __MYLOCALfreopen("in.txt","r",stdin);#endifint t;scanf("%d",&t);for(int i=1; i<=t; i++){printf("Data set %d: %s\n",i,run() ? "yes" : "no");}return 0; }
转载于:https://www.cnblogs.com/lk1993/p/3227068.html
DP_字串匹配(HDU_1501)相关推荐
- 算法串匹配C++实现字符串匹配的KMP算法
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,迎欢批评指正 之前看<算法导论>符字串匹配分部讲到KMP算法,被弄得云里雾里.天今看到阮一峰写了一篇博客<符字串匹配的KMP算法 ...
- 如何用Pandas处理文本数据?
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 文本数据是指不能参与算 ...
- Linux初学者接住了---Linux常用命令
前言 本文整理了Linux常用命令,分类整理,举例说明使用方法,希望为大家带来便利.命令严格区分大小写,一般是小写,tab键补全. Linux常用命令 前言 一.文件处理命令 1.命令格式 目录处理命 ...
- Centos版Linux 一些常用操作命令
1.文件处理命令:ls 功能描述:显示目录文件 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 语法: ls 选项[-ald] [文件或目录] -a 显示所有文件 ...
- 第三讲、Linux常用命令
课题大纲文件处理命令权限管理命令文件搜索命令帮助命令压缩解压命令网络通信命令系统关机命令Shell应用命令 文件的命名规则除了/外,所有字符都合法有些字符最好不用,如空格.制表符.退格符.@#$()- ...
- Linux学习笔记(二)|常用命令
Linux学习笔记(二)常用命令 1.文件处理命令 1.1命令格式与目录处理 -ls 功能描述:显示目录文件 原意:list 所在路径:/bin/ls 语法: ls-a 显示所有文件,包括隐藏文件 l ...
- 【Python基础】如何用Pandas处理文本数据?
作者:耿远昊,Datawhale成员,华东师范大学 文本数据是指不能参与算术运算的任何字符,也称为字符型数据.如英文字母.汉字.不作为数值使用的数字(以单引号开头)和其他可输入的字符.文本数据具有数据 ...
- 【数据结构与算法】动画:什么是 BF 算法 ?
本文是图解 什么是 BF算法.KMP算法.BM算法 三部曲之一. 定义 Brute-Force算法,简称为 BF算法,是一种简单朴素的模式匹配算法,常用于在一个主串 S 内查找一个子串 T 的出现位置 ...
- 为JAVA性能而设计(一)
为JAVA性能而设计(一) 发布时间:2007-1-9 15:51:42 来源:JavaWorld 作者:Brian Go- 为JAVA性能而设计(二) 发布时间:2007-1- ...
最新文章
- Windows下Redis中RedisQFork位置调整
- 微信小程序开发--数据绑定
- java sql 参数_java jdbc连接数据库,Properties 属性设置参数方法
- 微软职位内部推荐-Software Engineer II-Web app
- 电脑开机后,就会自动运行chkdsk,我想取消chkdsk,怎么取消
- angularjs自动加载和手动加载
- IntelliJ IDEA库存在却报错找不到的解决办法
- MySQL数据库入门学习(多图预警+新手向~)
- matlab算法之二分法
- 原声php 读取excel乱码_php读取excel文件,输出的值乱码解决方法
- 分布式系统中的CAP理论
- 计算机网络线接法,电脑网线水晶头接法图解
- 安卓开发日记APP史上最详细(SharedPreferences+Room)
- 前端程序员兼职副业平台推荐
- 往hive表中插入与导出数据方式load ,insert ,sqoop 等方式详解
- 转:安迪·格鲁夫:你无法避免开会,但可以让它更有效率
- 软件需求分析复习要点
- 非正式纳新题解(C语言)
- 无脑题分享:1163 阿克曼(Ackmann)函数
- 一款非常好用的前端Web组态工具(可视化)-Sovit2D
热门文章
- java web文件夹_JAVA WEB项目文件夹上传下载解决方案
- python enumerate用法_【Python】python enumerate用法总结
- 三个箭头循环标志_沧州交通标志杆直销
- python.集合转列表_Python基础数据类型:元组、列表、字典、集合
- 转:论文写作与投稿的一点经验,加两封催稿信
- 20201010《近代数学》第1节课 笔记
- android--service之aidl传递复杂对象,Android--Service之AIDL传递复杂对象
- 2012自动登录服务器,配置Windows自动登录 - Windows Server | Microsoft Docs
- 2020-12-15 IEEE写作格式
- 2019-10-20 莉萨如(Lissajous)曲线演示工具