处女座与复读机 DP
题目链接:https://ac.nowcoder.com/acm/contest/327/G
题意:给你两个字符串序列,让你根据第二个序列判断是不是 复读机,复读机会有以下特征
1. 将任意一个小写字母替换成另外一个小写字母
2. 在任意位置添加一个小写字母
3. 删除任意一个字母
分析:
动态规划。dp[i][j]代表从s[1...i]变为t[1...j]需要改动的次数。
初始化dp[][] for(int i=0;i<=ss;i++) dp[i][0]=i; for(int i=0;i<=tt;i++) dp[0][i]=i;(输入s和t的时候从1开始)
若s[i]==t[j] 则dp[i][j]=dp[i-1][j-1];
若s[i]!=t[j],分为三种情况:
1、替换,则dp[i][j]=dp[i-1][j-1]+1;
2、删除,则dp[i][j]=dp[i][j-1]+1;
3、增加,则dp[i][j]=dp[i-1][j]+1;
最后判断一下dp[ss][tt]<=2则成立。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf=<<;
const int maxn=;
const double pi=acos(-);
const int mod=1e9+;
int dp[maxn][maxn];
char s[maxn],t[maxn];
int main(){
cin>>s+;
cin>>t+;
int lens=strlen(s+),lent=strlen(t+);
for(int i=;i<=lens;i++)dp[i][]=i;
for(int i=;i<=lent;i++)dp[][i]=i;
for(int i=;i<=lens;i++){
for(int j=;j<=lent;j++){
if(s[i]==t[j])dp[i][j]=dp[i-][j-];
else dp[i][j]=min(dp[i-][j]+,min(dp[i][j-]+,dp[i-][j-]+));
}
}
puts(dp[lens][lent]<=?"YES":"NO");
return ;
}
处女座与复读机 DP的更多相关文章
- 牛客寒假算法基础集训营2 【处女座与复读机】DP最小编辑距离【模板题】
链接:https://ac.nowcoder.com/acm/contest/327/G来源:牛客网 一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女 ...
- [2018集训队作业][UOJ450] 复读机 [DP+泰勒展开+单位根反演]
题面 传送门 思路 本文中所有$m$是原题目中的$k$ 首先,这个一看就是$d=1,2,3$数据分治 d=1 不说了,很简单,$m^n$ d=2 先上个$dp$试试 设$dp[i][j]$表示前$i$ ...
- 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 处女座和他的小姐姐(三)----数位DP
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! 处女座其实 ...
- 处女座和小姐姐(三)(数位dp)
链接:https://ac.nowcoder.com/acm/contest/329/G 来源:牛客网 题目描述 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! ...
- 【UOJ#450】【集训队作业2018】复读机(生成函数,单位根反演)
[UOJ#450][集训队作业2018]复读机(生成函数,单位根反演) 题面 UOJ 题解 似乎是\(\mbox{Anson}\)爷的题. \(d=1\)的时候,随便怎么都行,答案就是\(k^n\). ...
- 处女座和小姐姐(三)-数位dp1.0
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 题目描述 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! ...
- UOJ #450. 【集训队作业2018】复读机
前置知识单位根反演自己去浅谈单位根反演看(此外可能需要一定的生成函数的姿势) 首先一看\(d\)这么小,那我们来分类讨论一下吧 当\(d=1\)时,显然答案就是\(k^n\) 当\(d=2\)时,如果 ...
- UOJ #450「集训队作业2018」复读机
UOJ #450 题意 有$ k$台复读机,每时每刻有且只有一台复读机进行复读 求$ n$时刻后每台复读机的复读次数都是$ d$的倍数的方案数 $ 1\leq d \leq 3,k \leq 5·10 ...
随机推荐
- linux 下常用的50条命令
1.find 查换文件.目录和权限 find . -name aaa.txt 在当前目录及子目录查找文件名为aaa.txt文件 find . -name "*.txt" -o -n ...
- 记录心得-FastJson分层解析demo示例
记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...
- Tomcat部署-端口、项目名称
端口: 将Connector的8080端口换成,电脑网页服务的80端口 项目名称 直接再 Host 中添加 <Context path="/" docBase="s ...
- padding和margin
padding (内边距) 语法: (1)padding-left:10px; 左内边距 (2)padding-right:10px; 右内边距 (3)padding-top:10px; 上内边距 ( ...
- IP通信基础学习第七周(上)
局域网的优点:具有广播功能,从一个站点可以方便的访问全网,局域网上的主机可共享连接在局域网上的各种资源:便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变:提高了系统的可靠性.可用性和生存性. ...
- ogg 12.3 for sqlserver 2016/2014 CDC模式配置
本文主要讲述ogg 12.3 通过CDC抽取mssqlserver 2016 enterprise的过程,以sqlserver为目标端投递配置相对简单,所以在此不在赘述. 针对以前的mssqlserv ...
- 怎么把Thu Nov 22 2018 10:49:36 GMT+0800转换成正常日期
this.data //Thu Nov 22 2018 10:49:36 GMT+0800 this.date_of_birth = date.getFullYear() + '-' + (date. ...
- scrapy的splash 的简单使用
安装Splash(拉取镜像下来)docker pull scrapinghub/splash安装scrapy-splashpip install scrapy-splash启动容器docker run ...
- 用户和用户组y哦不过y哦那个好
一.用户和用户组的简介? 介绍:https://blog.csdn.net/Na2Co3_Ren/article/details/74502309 二.用户可以分为3类? 1.主人:所有者的名字 2. ...
- 测试框架Unitest的运行原理,以及多个测试类中的执行顺序以及简化方法
单元测试单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一 ...