[CSP-S模拟测试]:String Master(暴力)
题目描述
所谓最长公共子串,比如串$A:"abcde"$,串$B:"jcdkl"$,则它们的最长公共子串为串$"cd"$,即长度最长的字符串,且在两个串中都作为连续子串出现过。
给定两个长度都为RnR的字符串,对于字符串大师的你来说,求它们的最长公共子串再简单不过了。
所以现在你有$k$次修改机会,每次你可以选择其中某个串的某个位置,将其修改成任意字符。
你需要合理使用这$k$次修改机会,使得修改之后两个串的最长公共子串最长。相信对于字符串大师的你来说,这个问题也难不倒你。
输入格式
第一行包含两个整数$n,k$,分别表示字符串的长度和修改次数。
第二行包含一个长度为$n$的仅由小写字符构成的字符串$S$。
第三行包含一个长度为$n$的仅由小写字符构成的字符串$T$。
输出格式
输出一行一个整数,即修改完毕之后两个串的最长公共子串的长度。
样例
样例输入1:
5 0
abcde
jcdkl
样例输出1:
2
样例输入2:
5 2
aaaaa
ababa
样例输出2:
5
数据范围与提示
对于$100\%$的数据,$0\leqslant k\leqslant n$。

题解
难得的水题,可是我出去玩去了,所以没考……
疯回来看题,有点难,不会……
然后我看了数据范围,这不**题嘛……
于是$5$分钟就切了。
然后我知道好多人都打的$DP$,其实暴力就可以。
我们肯定是连着好几个不匹配的时候使用修改机会,所以我们可以枚举两个串的起点,然后逐位比较,不一样就把机会用掉,知道没有修改或者到头了为止。
讲个故事,$skyh$看到这道题打了个$DP$,然后想打个暴力对拍一下,打完发现时间复杂度是一样的,这很尴尬,故事讲完了……
所以看到简单题千万不要想复杂。
时间复杂度:$\Theta(n^3)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
using namespace std;
int n,k;
char S[301],T[301];
int l,r,sum;
int ans;
int main()
{
scanf("%d%d%s%s",&n,&k,S+1,T+1);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
l=i;
r=j;
sum=0;
while(l&&r&&sum<=k)
{
if(S[l]!=T[r])sum++;
l--;
r--;
}
if(sum>k)ans=max(ans,i-l-1);
else ans=max(ans,i-l);
}
printf("%d",ans);
return 0;
}
rp++
[CSP-S模拟测试]:String Master(暴力)的更多相关文章
- [CSP-S模拟测试]:D(暴力+剪枝)
题目传送门(内部题47) 输入格式 第一行一个正整数$n$.第二行$n$个正整数,表示序列$A_i$. 输出格式 一行一个正整数,表示答案. 样例 样例输入: 530 60 20 20 20 样例输出 ...
- [CSP-S模拟测试]:传递(暴力+bitset)
题目描述 我们称一个有向图$G$是传递的,当且仅当对于图$G$的三个不同顶点$a,b,c$,若图$G$中有一条边从$a$到$b$且有一条边从$b$到$c$,那么图中也有一条边从$a$到$c$.我们称一 ...
- [CSP-S模拟测试]:string(线段树)
题目描述 给定一个由小写字母组成的字符串$s$. 有$m$次操作,每次操作给定$3$个参数$l,r,x$. 如果$x=1$,将$s[l]~s[r]$升序排序: 如果$x=0$,将$s[l]~s[r]$ ...
- [CSP-S模拟测试]:寿司(暴力)
题目描述 小$c$是一名$oier$.最近,他发现他的数据结构好像学傻了.因为他在刷题时碰到了一道傻逼数据结构题,强行使用了平衡树来解决,卡着时间$AC$.为此,他被狠狠地嘲讽了一番.于是,小$c$找 ...
- [CSP-S模拟测试]:Median(暴力+模拟)
题目描述 定义两个数列: $$S=\{S(1),S(2),...,S(n)\}\text{和}S_2\{S_2(1),S_2(2),...,S_2(n)\}$$ $$S(k)=(p_k\times k ...
- [CSP-S模拟测试]:string(文艺平衡树)
题目传送门(内部题60) 输入格式 第一行三个数$n,m,k$.第二行一个长度为$n$的串.接下来$m$行每行两个数$L_i$和$R_i$. 输出格式 一个串,表示字典序第$k$小的合法的能被填出的串 ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- 安装nginx python uwsgi环境 以及模拟测试
uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...
随机推荐
- Vagrant 入门 - 配置
原文地址 现在我们已经有了一个运行 Ubuntu 的虚拟机,并且可以在宿主机上编辑文件并自动同步到虚拟机.现在让我们安装一个 web 服务器,通过服务器访问这些文件. 可以通过 SSH 进入并安装一个 ...
- MySQL5.7的搭建以及SSL证书
Centos7 安装MySQL 5.7 (通用二进制包) 1.1 下载软件包 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-l ...
- JS formData
有时候,我们需要使用formData来上传文件,并根据反馈的结果做不同的处理, 这个时候使用form来提交文件不方便 #perform 获取的的上传文件所用的input标签 var formData ...
- Python 学习笔记18 异常处理
我们在编码的过程中,难免会遇到一些错误和异常, 这时候程序会异常退出,并且会抛出错误信息: 比如: print(1/0) ''' 输出: Traceback (most recent call las ...
- Spring Boot静态资源
1.4 SpringBoot静态资源 1.4.1 默认静态资源映射 Spring Boot 对静态资源映射提供了默认配置 Spring Boot 默认将 /** 所有访问映射到以下目录: classp ...
- java_第一年_JDBC(2)
上篇说到,通过JDBC可实现java编程程序和mysql数据库进行连接并交互,而交互后所形成的结果集是通过ResultSet对象来操作的. 创建ResultSet对象: stmt = conn.cre ...
- 16、NumPy ——字节交换
NumPy 字节交换 在几乎所有的机器上,多字节对象都被存储为连续的字节序列.字节顺序,是跨越多字节的程序对象的存储规则. 大端模式:指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地 ...
- sqlserver创建索引语句
CREATE INDEX PersonIndex ON 表名 (字段名) DROP INDEX PersonIndex ON 表名
- StackExchange.Redis 使用LuaScript脚本模糊查询hash
原文:StackExchange.Redis 使用LuaScript脚本模糊查询hash 获取redis连接 public class RedisHelper { private static rea ...
- ubuntu安装supervisor以及使用supervisor启动.net core进程
1.下载.net core项目ubuntu系统运行容器dotnet 1.版本:dotnet-sdk-2.1.3-linux-x64.tar.gz 2.将下载好的包上传到ubuntu ...