类似LCS,构成目标单词(POJ2192)
题目链接:http://poj.org/problem?id=2192
解题报告:
1、类似最长公共子序列,dp[i][j]表示用s1前i个字符和s2前j个字符来构成目标单词的一部分,是否成功
2、状态转移方程:
if(i>&&s3[i+j-]==s1[i-]&&dp[i-][j])
dp[i][j]=;
if(j>&&s3[i+j-]==s2[j-]&&dp[i][j-])
dp[i][j]=;
/*#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std; int main()
{
int dp[210][210];
char s1[210],s2[210],s3[410];
int t,n,len1,len2,i,j;
scanf("%d",&n);
for(t=1; t<=n; t++)
{
scanf("%s%s%s",s1,s2,s3);
len1=strlen(s1);
len2=strlen(s2);
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(i=0; i<=len1; i++)
{
for(j=0; j<=len2; j++)
{
if(i>0 && s3[i+j-1]==s1[i-1] && dp[i-1][j])
{
dp[i][j]=1;
}
if(j>0 && s3[i+j-1]==s2[j-1] && dp[i][j-1])
{
dp[i][j]=1;
}
}
}
if(dp[len1][len2])
{
printf("Data set %d: yes\n",t);
}
else
{
printf("Data set %d: no\n",t);
}
}
return 0;
}
*/ #include <stdio.h>
#include <string.h>
#include <algorithm> using namespace std; int main()
{
int Case=;
int t;
scanf("%d",&t);
while(t--)
{ char s1[],s2[],s3[];
scanf("%s%s%s",s1,s2,s3);
int dp[][];///dp[i][j]表示s1前i个字符和s2前j个字符是否可以构成当前的一部分s3; int len1,len2;
len1=strlen(s1);
len2=strlen(s2); memset(dp,,sizeof(dp)); dp[][]=;
for(int i=; i<=len1; i++)
{
for(int j=; j<=len2; j++)
{
if(i>&&s3[i+j-]==s1[i-]&&dp[i-][j])
dp[i][j]=;
if(j>&&s3[i+j-]==s2[j-]&&dp[i][j-])
dp[i][j]=;
}
} if(dp[len1][len2]==)
printf("Data set %d: yes\n",Case++);
else printf("Data set %d: no\n",Case++);
}
return ;
}
类似LCS,构成目标单词(POJ2192)的更多相关文章
- 最长公共单词,类似LCS,(POJ2250)
题目链接:http://poj.org/problem?id=2250 解题报告: 1.状态转移方程: ; i<=len1; i++) { ; j<=len2; j++) { dp[i][ ...
- UVA - 10723 类似LCS
思路:dp(i, j)表示第一个串前i个字符和第二个串前j个字符需要的最短字符串长度,cnt(i, j)表示第一个串前i个字符和第二个串前j个字符需要的最短字符串的个数. 转移方程: if(s1[i] ...
- [CareerCup] 18.10 Word Transform 单词转换
18.10 Given two words of equal length that are in a dictionary, write a method to transform one word ...
- [LeetCode] Stickers to Spell Word 贴片拼单词
We are given N different types of stickers. Each sticker has a lowercase English word on it. You wou ...
- LUA实现单词替换功能
背景描述 编程或者文档处理过程, 经常遇到需要将一个单词修改为另外一个单词的情况, 例如 命名为 shall 修改 为 should. 使用工具实现, 则比较方便,不容易出错, 解放双手. 需求规格 ...
- LeetCode 79 Word Search(单词查找)
题目链接:https://leetcode.com/problems/word-search/#/description 给出一个二维字符表,并给出一个String类型的单词,查找该单词是否出现在该二 ...
- POJ-1080 Human Gene Functions---类似LCS
题目链接: https://cn.vjudge.net/problem/POJ-1080 题目大意: 给定两组序列,要你求出它们的最大相似度,每个字母与其他字母或自身和空格对应都有一个打分,求在这两个 ...
- leetcode 127 单词接龙
给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规则: 每次转换只能改变一个字母. 转换过程中的中 ...
- 正则表达式 整理(\w \s \d 点 贪婪匹配 非贪婪匹配 * + ? {} | [] ^ $ \b 单词边界 分组、re.findall()、re.split()、re.search()、re.match()、re.compile()、re.sub())
re.findall 匹配到正则表达式的字符,匹配到的每个字符存入一个列表,返回一个匹配到的所有字符列表 一. 匹配单个字符 import re # \w 匹配所有字母.数字.下划线 re.find ...
随机推荐
- 小程序自定义modal弹窗封装实现
前言小程序官方提供了 wx.showModal 方法,但样式比较固定,不能满足多元化需求,自定义势在必行~ 老规矩先上图 点击某个按钮,弹出 modal框,里面的内容可以自定义,可以是简单的文字提示, ...
- 第十一章:DOM扩展
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MapReduce 调优-Combiner
下图是演示了Combiner的好处 因为我们知道Hadoop的好处在于集群中有很多小的机器,组成了一个庞大的集群,把一个大的计算任务后者说复杂的计算过程分发到了一个个小的机器上面.但是这个集群一个致命 ...
- Unable to instantiate receiver xxx.receiver.NetworkReceiver异常
Unable to instantiate xxxreceiver.NetworkReceiver: 这个异常是之前版本有NetworkReceiver(监听网络变化的),新的版本删除了Network ...
- Hadoop Intro - Configure 01
hadoop配置文件详解.安装及相关操作 一. Hadoop伪分布配置 1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/j ...
- Java异常处理学习
今天才开通了博客园的博客,希望可以记录自己学习的点点滴滴.最近去处理了一些私人事情,有点烦人,希望自己不要被这些破事所影响. 最近在看马士兵老师的Java基础的视频,(中断了一周)发现本科时候的胡老师 ...
- Murano Weekly Meeting 2015.09.08
Meeting time: 2015.September.8th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting su ...
- PHP用mysql数据库存储session
大部分使用php的人一旦应用到session都会使用cookie. cookie虽好可是它也会给我们带来一些隐患的. 隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当 ...
- javaScript 删除确认实现方法总结分享
第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认.<SCRIPT LANGUAGE=javascript> function p_del() { ...
- 【转】java序列化技术
转自:http://blog.csdn.net/yakihappy/article/details/3979373 Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地 ...