Approximate Search
题目链接:Gym-101492H
动态规划,应该是比较基础的,可是自己就是不会QAQ....
/* 把使用机会当成“花费” */
# include <iostream>
# include <cstdio>
# include <cstring>
# include <string>
# include <cstdlib>
# include <cmath>
# include <ctime>
# include <climits>
# include <memory>
# include <functional>
# include <algorithm>
# include <bitset>
# include <set>
# include <map>
# include <stack>
# include <vector>
# include <deque>
# include <queue>
# include <iomanip>
# include <utility>
using namespace std; # define lson l,m,rt<<
# define rson r,m+,rt<<|
# define lowbit(x) (x&(-x))
# define lcm(a,b) (a*b/__gcd(a,b))
typedef long long ll;
const ll mod=1e9+;
const int maxn=1e6+;
const double pi=acos(-1.0);
const int eps=1e-; char s[], t[];
int dp[maxn][];
//dp[i][j]表示t[1-i]和t[1-j]能比配需要的最小的k值
int main()
{
int n, m, k;
memset(dp, , sizeof(dp));
cin>>m>>n>>k;
scanf("%s", s+);
scanf("%s", t+); //如果模式串s是空串,则k为0
for(int i=; i<=n; i++ )
dp[i][] = ; for(int i=; i<=n; i++ )//t
{
for(int j=; j<=m; j++ )//s
{
//s中前(j-1)个和t中前(i-1)个匹配后,s[j]和t[i]直接匹配
if( s[j]==t[i] )
dp[i][j] = min(dp[i-][j-], dp[i][j]);//不需要”花费“ //在前面已经匹配的基础上,删掉t[i],此时s[j]依旧没有匹配上,所以是dp[i][j-1],而不是dp[i][j]
dp[i][j-] = min(dp[i][j-], dp[i-][j-]+);
//在前面已经匹配的基础上,增加一个t[i]与s[j]匹配,但由于是虚拟的增加,所以仍是dp[i-1][j],而不是dp[i][j];
dp[i-][j] = min(dp[i-][j], dp[i-][j-]+);
//在前已经匹配的基础上,换t[i]
dp[i][j] = min(dp[i][j], dp[i-][j-]+);
}
} for(int i=; i<=n; i++ )
{
if( dp[i][m]<=k )
{
cout<<'S'<<endl;
return ;
}
}
cout<<'N'<<endl;
return ;
}
Approximate Search的更多相关文章
- Literature Review: Improving Image-Based Localization by Active Correspondence Search
Abstract Input: A query image Source: A point cloud reconstruction of a large scene (有一百多万3D点) Resul ...
- Programming Contest Problem Types
Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...
- USACO Section1.2
section1.1主要包括四道题和两个编程知识介绍.下面将对这6个部分内容进行学习. Your Ride Is Here 这道题没什么难度,读懂题目意思就行:把两个字符串按照题目要求转换成数字,然后 ...
- [DeeplearningAI笔记]序列模型3.3集束搜索
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.3 集束搜索Beam Search 对于机器翻译来说,给定输入的句子,会返回一个随机的英语翻译结果,但是你想要一 ...
- 牛人的ACM经验 (转)
一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈 ...
- [C5W3] Sequence Models - Sequence models & Attention mechanism
第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 基础模型(Basic Models) 在这一周,你将会学习 seq2seq(sequ ...
- [C7] Andrew Ng - Sequence Models
About this Course This course will teach you how to build models for natural language, audio, and ot ...
- ACM算法锦集
一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输出到文本文 件中 ...
- image analogies笔记
Image Analogies 个人学习笔记, 根基尚浅, 免不得颇多纰漏, 望批评指教. 这是一篇2001年的文章, 其核心主要讲了如何将一对图片之间的"转换模式"应用到其他图片 ...
随机推荐
- pandas.to_datetime() 只保留【年-月-日】
Outline pandas.to_datetime() 生成的日期会默认带有 [2019-07-03 00:00:00]的分钟精度:但有时并不需要这些分钟精度: 去掉分钟精度 可以通过pandas ...
- [JLOI2014]松鼠的新家 (树剖)
题目 P3258 [JLOI2014]松鼠的新家 解析 非常裸的一道树剖题 链上修改+单点查询的板子 记录一下所经过的点\(now[i]\),每次更新\(now[i-1]到now[i]\) 我们链上更 ...
- if __name__ == '__main__' 该如何理解
Python 中的 if __name__ == '__main__' 该如何理解 程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# ...
- AngularJS 插值字符串 $interpolate
定义: $interpolate:编译一段带有嵌入标记的语句,然后返回一个interpolate(插值)函数.使用: $interpolate(text,[mustHaveException],[tr ...
- Java 之 Session 包含验证码登录案例
需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码. 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 如果验证码输入有误,跳转登录页面, ...
- iOS OpenCV资料收集
OpenCV iOS Title: OpenCV iOS Hello Compatibility: > OpenCV 2.4.3 Author: Charu Hans You will lear ...
- Python学习笔记-数字,列表,元祖,切片,循环
数字 1,加减乘除:+,-,*,/ 2,平方:** 3,立方:**3 4,字符串转换:str(数字) 5,浮点数:带小数点 0.2 Python编程建议 import this >>&g ...
- python基础-模块(全是理论,没有代码)
模块 概念:一系列功能的结合体.相当于模块包着一堆函数与代码.本质上是py文件. 来源: python内置的模块----→ python解释器的模块 第三方的模块 -----→ 其他人编写提供的 自定 ...
- MySQL5.7应当注意的参数
简介: 本篇文章主要介绍 MySQL 初始化应当注意的参数,对于不同环境间实例迁移,这些参数同样应当注意. 注: 本文介绍的参数都是在配置文件 [mysqld] 部分. server_id 和 log ...
- 使用HTMLTestRunner模块生成测试报告
步骤: 1.下载HTMLTestRunner模块 HTMLTestRunnerCN.py是中文版本的,EN是英文版本的,将要使用的版本放到Python安装目录下lib文件夹中,然后试试看能不能impo ...