POJ-2192(Zipper)

这个题题目意思是给你三个字符串str1,str2,str3.将str3从左自右扫描,去匹配str1和str2中的元素,不可重复,若存在一种匹配方法使得str1和str2都被匹配完全了,则输出yes,否则no

相信大家懂了样例对题意就不纠结了。

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

这个题一看就毛躁的用了搜索,结果发现wa掉了。其实仔细想想搜索确实不是个好办法,考虑到一种情况:

str1:aaaaaaaaaaaaaaaaaaaaaab

str2: aaaaaaaaaaaaaaaaaaaaaac

str3: aaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaab

一开始大概就是因为这种数据过不掉吧。。。再仔细想想就想到dp了,想到dp就发现其实是水题

dp[i][j]为str1中前i个字符和str2中前j个字符能否和str3中前i+j个匹配,如果能为1,否则为0;

动态方程:a.dp[i-1][j]==1&&str1[i-1]==str3[i+j-1]//如果str1前i-1个加上str2前j个是和str3前i+j-1个是匹配的,那么考虑str1第i-1个字符和str3中第i+j-1个字符。

     b.dp[i][j-1]==1&&str2[j-1]==str3[i+j-1]

当a和b任意一个条件满足,则dp[i][j]=1.注意dp[i][j]中的i代表是前i个字符,不是到第i个字符,j也一样,说到这里应该很明白了吧,不明白仔细看看代码吧

下面贴代码:

View Code
 1 //====================================================================
 2 //Name       :
 3 //Author     :hxf
 4 //copyright  :http://www.cnblogs.com/Free-rein/
 5 //Description:
 6 //Data       :2012.8.9
 7 //========================================================================
 8 #include<iostream>
 9 #include<algorithm>
10 #include<stdio.h>
11 #include<math.h>
12 #include<string.h>
13 #include<vector>
14 #include<stack>
15 #include<queue>
16 #define MAX 100005
17 #define inf 1499999999
18 using namespace std;
19 char st1[205];
20 char st2[205];
21 char st3[410];
22 int dp[205][205];
23 int main()
24 {
25     int n;
26     scanf("%d",&n);
27     int k=0;
28     while(n--)
29     {
30         k++;
31         scanf("%s %s %s",st1,st2,st3);
32         getchar();
33         int k1=strlen(st1);
34         int k2=strlen(st2);
35         memset(dp,0,sizeof(dp));
36         dp[0][0]=1;
37         for(int i=0;i<=k1;i++)
38         {
39             for(int j=0;j<=k2;j++)
40             {
41                 if(i>=1&&dp[i-1][j]==1&&st1[i-1]==st3[i+j-1])
42                     dp[i][j]=1;
43                 if(j>=1&&dp[i][j-1]==1&&st2[j-1]==st3[i+j-1])
44                     dp[i][j]=1;
45             }
46         }
47         if(dp[k1][k2]==1)
48             printf("Data set %d: yes\n",k);
49         else
50             printf("Data set %d: no\n",k);
51     }
52     return 0;
53 }

转载于:https://www.cnblogs.com/Free-rein/archive/2012/08/09/2630919.html

RedisTemplate配置的jackson.ObjectMapper里的一个enableDefaultTyping方法过期解决 1、前言 最近升级SpringBoot,从2.1.6版本升级到2.2.6版本,发现enableDefaultTyping方法过期过期了。 该方法是指定序列化输入的类型,就是将数据库里的数据安装一定类型存储到redis缓存中。 2、为什么要指定序列化输入类型 2.1、没有指定序列化输入类型 如果注释掉enableDefaultTyping(ObjectMapper.DefaultTyp... 阅读详情

相关推荐

DFS poj 2192 zipper

题目 http://poj.org/problem?id=2192 #include #include char a[202],b[202],c[404]; int la,lb,lc; int dfs(int L1,int L2,int L3) { if(L1==la&&L2==lb) return 1; if(L1<la&&a[L1]==c[L3

Mr.CJ 491

Java 反序列化漏洞防御:Jackson 安全配置

$\text{风险} = \frac{\text{反序列化权限}}{\text{类型验证强度}}$$Java 反序列化漏洞常通过恶意 JSON 数据触发,攻击者利用 Jackson 的。✅ 正确做法:完全移除。

kkshdgxcjsd的博客 377

vhr 微人事系统安装与部署教程(SpringBoot + Vue 项目实战)

vhr(微人事)是一个开源的人力资源管理系统项目。系统采用前后端分离架构,主要技术栈包括:后端:MyBatis前端:VueElement UIAxios数据库:MySQL系统通常包含以下模块:员工管理部门管理职位管理薪资管理权限管理系统管理整体功能已经接近企业级后台系统。vhr(微人事)是一个非常经典的开源人力资源管理系统项目,基于SpringBoot + Vue 前后端分离架构。系统包含:员工管理部门管理权限管理薪资管理。

m0_69484557的博客 486

jackson.ObjectMapper里的一个enableDefaultTyping方法过期

jackson.ObjectMapper里的一个enableDefaultTyping方法过期了,项目每次编译时提示,同时过期可能是有漏洞或者效率太低了,总而言之最好处理下 看了下网上也没有解决方案,我这边记录下解决方案。 最好的解决办法就是看过期方法的源码,一般过期方法会给出新的方法来替换过期方法的说明 可以看到@link 里已经给出了这个说明。 我这边修改的: ...

每天进步一点 1万+

从IMC层到应力点:手把手教你用SEM/EDS给BGA焊点做一次‘体检’

本文详细介绍了如何使用SEM/EDS技术对BGA焊点进行全面失效分析,从样品制备到SEM观察、EDS分析,再到综合诊断,手把手教你识别焊点的微观特征和成分异常。文章特别强调了IMC层分析在BGA焊接失效诊断中的关键作用,并提供了实用的实验室技巧和常见失效模式对照表,帮助工程师快速定位问题根源。

weixin_42685438的博客 384

碎碎念android eMMC【转】

本文转载自:https://blog.youkuaiyun.com/Fybon/article/details/44242549 一、/dev/blockroot@:/dev/block #lsbootdevicemmcblk0mmcblk0p1mmcblk0p10…….mmcblk0p18mmcblk0p19mmcblk0p2mmcblk0p20……mmcblk0p29mmcblk0p3mmcblk0p3...

zzb2760715357的博客 377

POJ 2192 Zipper (简单DP)

POJ 2192 Zipper 题意: 解题过程: AC代码: POJ 2192 Zipper 题目传送门 题意: 给出你三个字符串,问你能否把前两个字符串混合成第三个字符串,使得每个字母在原字符串中的前后顺序不改变。 解题过程: 考虑DP,可以用f[i][j]表示第一个字符串枚举到第i位,第二个字符串枚举到第j位...

dieyi9889的博客 128

liquibase介绍

1、Liquibase还是Flyway Flyway和Liquibase都支持专业数据库重构和版本控制所需的所有功能,因此您将始终知道要处理的数据库模式的版本以及它是否与软件版本匹配。两种工具都集成在Maven或Gradle构建脚本中以及Spring Boot生态系统中,因此您可以完全自动化数据库重构。 Flyway使用SQL定义数据库更改,因此您可以定制SQL脚本,使其与基础数据库技术(例如Oracle或PostgreSQL)良好地配合使用。另一方面,使用Liquibase,您可以通过使用XML,YA

赶路人儿 7534

POJ-2192 Zipper

POJ-2192 Zipper DP

Brust Link 648

【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红

文章目录1.概述M.参考 1.概述 因为内网开发,然后这几天我被隔离了,然后公司搞了一个外网的vpn能连接的云桌面,云桌面也是网络隔离的,因此只能自己拷贝相关的文件到里面。 然后我就拷贝了代码和maven仓库中的一部分,因为本地的20G一次拷贝不完,需要多次拷贝,但是我拷贝了kafka,仍然飘红。具体如下 idea左侧External Libraries里,没有Maven的依赖包 然后整了很久都没搞定,后来我自己新建了一个项目,然后引入发现是不可以的,而且框框里面的飘红。 然后我就想是不是因为缺少依赖

九师兄 4411

最大面积验证码通用解法

最大面积验证码、面积验证通用解法

九月镇灵将的博客 1044

POJ 2192 Zipper

题目地址:http://poj.org/problem?id=2192 思路:因为只能依次取,所以c[i+j]这个字符肯定是由a[i]或者b[j]构成的 AC代码: #include #include #include #include #include #include #include #include #include #include #include cons

Java识堂,一个有干货的微信公众号 418

Qt软件开发-Qt编译zlib完成文件压缩解压(win10)

在软件开发中进行有需求需要将生成的一些文件打包上传到服务器,或者从服务器下载压缩包下来内部解压。或者自己做一些打包工具,那么使用zlib开源就可以很方便的完成。接下来介绍在zlib在windows下如何利用Qt进行编译,调用,介绍mingw、msvc,32/64位编译办法,完成zip文件打包生成例子。可以单文件压缩打包,多文件压缩打包,目录压缩打包等等。

2217

POJ2192 Zipper

Zipper Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17192   Accepted: 6115 Description Given three strings, you are to determine whether the third string ca

懂取舍 亦洒脱 836

GPU硬件架构与微架构深度解析34-GPU安全架构深度解析

现代GPU不仅是图形处理器,更是高性能计算平台,安全架构设计至关重要。内存加密- 保护数据在传输和存储时的安全安全启动- 确保固件和软件的完整性隔离机制- 防止不同应用间的数据泄露密钥管理- 安全存储和处理加密密钥。

2301_79143213的博客 100

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

POJ 2192 Zipper

Zipper Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14127   Accepted: 4962 Description Given three strings, you are to determine whether the third string ca...

weixin_34050427的博客 88

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

poj2192 Zipper

原题: http://poj.org/problem?id=2192 思路: 设字符串str1,最后一个字符是c1,长度为len1;字符串str2,最后一个字符是c2,长度为len2;合并结果为str3,最后一个字符是c3,长度为len3; 我们比较c1,c2,c3;如果str3是由str1,str2合并而来,那么只有两种情况 ①c1==c3 ,str1的前len1-1个字符和st

zark721的博客 340

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【动态规划】POJ - 2192 Zipper

【动态规划】POJ - 2192 Zipper DescriptionGiven three strings, you are to determine whether the third string can be formed by combinin

xuziling_的博客 882

poj_2192Zipper

链接:http://poj.org/problem?id=2192 和数塔一样,中间存在重复子问题。用一个数组记录是否被访问过,也就是记忆化搜索了。 #include #include #include #include #include using namespace std; bool dp[205][205]; bool flag; string sa, sb, sc;

晚晴小筑 1147

poj 2192 Zipper

/* Name: poj 2192 Zipper Author: UnimeSun Date: 16/05/11 21:39 Description: DP*//*解题报告:DP转移方程:dp[i][j]:len1以i,len2以终结时,能否够成串result dp[i][j] = len1[i]==result[i+j]&&dp[i-1][j] ||

Unimen的专栏 637

poj 2192 zipper

今天突然发现我做了这道题,印象不大 ,但是一看题意 感觉很经典 ,所以决定写一下结题报告 首先这道题的题意是 给你三个字符串,前两个给你弄一下,然后可以构成一个字符串,但是你要知道这个条件是 1:他们两个组成最后的字符串时不能改变先后顺序 得出两个状态方程 dp[i][j]表示这个前i个字符和前j个字符是否会构成s3的前i+j个字符 (1)dp[i][j]=(dp[i-1][j]&&s1

wuhulala的休息室 1343
上一篇: HDU-2222(Keywords Search)
下一篇: 素数筛选-埃拉托斯特尼筛法
badao7116
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值