[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 ...
随机推荐
- 本站页脚HTML回顶部代码
<style type="text/css">.top { width: 50px; height: 50px; background-color: #F0F0F0; ...
- 屏幕适配dip
android适配一般使用dpi 那dpi与分辨率,屏幕尺寸的关系 DPI值计算是屏幕对角线的像素值除以屏幕的大小 dip=/ 屏幕尺寸, 比如:计算WVGA(800*480)分辨率,3.7英寸的密度 ...
- js-jssdk微信H5选择多张图片预览并上传(兼容ios,安卓,已测试)
值得注意的是: 1.在微信H5中选择图片运用:wx.chooseImage,成功后返回: res.localIds用于上传图片使用 上传图片:wx.uploadImage. 2.上传图片的时候 ...
- 永远让比较函数对相等的值返回false
今天在刷OJ的时候,有一道题一直Runtime Error,查错出来是比较函数写挂掉了,但是不知道错误在哪,于是查阅资料:永远让比较函数对相等的值返回false 具体可点击此处查看分析:链接 另外,在 ...
- layer帮助手册
layer帮助手册 键:值 调用时按需重新分配,可实现各种风格,如:$.layer({键:值,键:值,......}) 描述 type:0 层的类型.0:信息框(默认),1:页面层,2:ifra ...
- JavaWeb——servlet1
一.servlet简介 Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于 ...
- 浏览器调起摄像头(jquery+layui)
/* 实例化camvas配置参数 config = { video:{width:Number(scale*4),height:Number(scale*3)},//视频比例4:3 canvasId: ...
- php开启xdebug扩展及xdebug通信原理
xdebug调试原理 IDE(如PHPStorm)已经集成了一个遵循BGDP的XDebug插件,当开启它的时候, 会在本地开一个XDebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个 ...
- javascript跨浏览器操作xml
//跨浏览器获取xmlDom function getXMLDOM(xmlStr) { var xmlDom = null; if (typeof window.DOMParser != 'undef ...
- 初学Java 从控制台读取输入
代码 import java.util.Scanner; public class ComputeArea { public static void main(String[] args) { Sca ...