【HDU - 2087】 剪花布条(直接模拟 or KMP)

题干:

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 

Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。 
Output输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。 
Sample Input

abcde a3
aaaaaa  aa
#

Sample Output

0
3

 

解题报告:

        从i开始的不成立必须从i+1开始!不能从不成立的那个点开始!虽然也能水过,但是显然那样是不对的。

ac代码:(模拟)

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;char a[1000 + 5];
char b[1000 + 5];
int main()
{int lena,lenb;while(scanf("%s",a)) {if(a[0]=='#') break;scanf("%s",b);lena=strlen(a);lenb=strlen(b);int cnt=0;int x=0,y=0;//x->a   y->bwhile(x<lena) {if(a[x]==b[y]) {x++;y++;if(y==lenb) {cnt++;y=0;}}else {x=x-y+1;y=0; } }printf("%d\n",cnt); }return 0 ;
}

ac代码2:(KMP)

(稍后帖)(已补)

#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
char s[1000005];
char t[1000005];
int next[1000005];
int len1,len2;
void getnext() {int j = 0,k = -1;next[0] = -1;while(j<len2-1) {if(k == -1 || t[j] == t[k]) {j++,k++;next[j] = k;}else k = next[k];}
}
int kmp() {int cnt = 0;int i=0,j=0;while(i < len1) {if(j == -1 || s[i] == t[j]) {i++,j++;}else {j=next[j];}if(j >= len2) {cnt++;j=0;}}return cnt;}
int main()
{while(~scanf("%s",s)) {if(s[0] == '#') break;scanf("%s",t);len1 = strlen(s);len2 = strlen(t);getnext();printf("%d\n",kmp());}return 0;
}

总结:

今天是2018.10.22,时隔三个月,,我终于是来补上这篇KMP的代码了。感慨万千啊!!原来三个月前的我还是只会写暴力,代码格式十分丑陋的小渣渣,一暑假的熏陶,真的是看到了自己的变化。应了学长那句话啊,暑假留校的时光必定会是你进步最快的两个月!!!感谢经历!!祝自己越来越好。

另:可以看看自己对KMP模板总结的那个博客,想想如果从1开始读入字符串的话应该怎么写。博客链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从客户端*****中检测到有潜在危险的 Request.Form 值。

MVC前端调用后台控制器方法报错 解决方案&#xff1a; //在控制器方法前添加以下修饰 [ValidateInput(false)]

【九度oj 1135】【OpenJ_Bailian - 2915】 字符串排序 (水)

题干&#xff1a; 先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束&#xff0c;每个字符串少于一百个字符。如果在输入过程中输入的一个字符串为“stop”&#xff0c;也结束输入。 然后将这输入的该组字符串按每个字符串的长度&#xff0c;由小到…

webapi自宿主设置本地端口使用https协议

首先&#xff0c;你要申请证书&#xff0c;然后导入到证书里面&#xff1a; 具体步骤&#xff1a;运行–MMC命令&#xff0c;进入如下界面进行设置&#xff1a; 一直点下一步直到完成&#xff0c;然后将证书导入到个人里面 这个时候进入cmd程序运行如下命令&#xff1a; /…

C# linq Expression left join如何使用

eg&#xff1a; 注意&#xff1a;on 前后要保持字段名一致 var bleftQuery from f in bFamiliesjoin a in bAudits on new{Idf.Id,DCYIdf.ModifyID} equals new{Ida.HealthFamilyId,a.DCYId} into nafrom a in na.DefaultIfEmpty()select new FamilyWithAudit(){Id f.Id,Sea…

第九届(2018)蓝桥杯 山东省赛解题报告(题目+分析+代码)

1标题&#xff1a;第几天 2000年的1月1日&#xff0c;是那一年的第1天。那么&#xff0c;2000年的5月4日&#xff0c;是那一年的第几天&#xff1f; 注意&#xff1a;需要提交的是一个整数&#xff0c;不要填写任何多余内容。 【答案】&#xff1a;125 2标题&#xff1a;明码 …

layui 数据表格 日期格式化

<div>{{ layui.util.toDateString(d.CARDDATE, "yyyy-MM-dd HH:mm:ss") }}</div>

浏览器自带的前进后退按钮禁用

jQuery(document).ready(function () {if (window.history && window.history.pushState) {$(window).on(popstate, function () {/// 当点击浏览器的 后退和前进按钮 时才会被触发&#xff0c; window.history.pushState(forward, null, );window.history.forward(1);…

【HDU - 1241】Oil Deposits (连通块问题 属于求大海中的岛屿个数 类似问题)

题干&#xff1a; The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It t…

asp.net core mvc接口,请求响应统一日志管理

如何为api所有的请求和响应做一个统一的日志记录 1.创建日志类 public class RequestResponseLog {public string Url { get; set; }public IDictionary<string, string> Headers { get; set; } new Dictionary<string, string>();public string Method { get; …

Windows下 Python3.7.0 运行环境的搭建 一套操作后就可以使用Python写代码啦~

1.下载Python for windows 废话不说&#xff0c;直接上网址&#xff1a;https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe 2.安装Python for windows 运行安装文件之后&#xff0c;你会看到这个页面&#xff1a;不得不说Python 在 Windows平台下的安装比傻瓜式还傻瓜…

【HDU - 1873】 看病要排队(优先队列)

题干&#xff1a;看病要排队这个是地球人都知道的常识。 不过经过细心的0068的观察&#xff0c;他发现了医院里排队还是有讲究的。0068所去的医院有三个医生&#xff08;汗&#xff0c;这么少&#xff09;同时看病。而看病的人病情有轻重&#xff0c;所以不能根据简单的先来先服…

h5 网站滚动到某个位置

var height $("#0107").offset().top&#xff1b; //获得要滚动到的高度 $("html:not(:animated),body:not(:animated)").animate({ scrollTop: 392 }, slow); //滚动

【HDU - 1856】 More is better(并查集)(还需要空间优化。。)

题干&#xff1a;Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements. Mr Wang selected a room big enough to hold the boys. The boy who…

.Net开发WebApi如何使用JObject对象接收参数

1.需要引入包Microsoft.AspNetCore.Mvc.NewtonsoftJson 2.在StartUp.cs的ConfigureServices方法中进行注册 services.AddControllers().AddNewtonsoftJson(options >{options.SerializerSettings.ContractResolver new DefaultContractResolver();}); 3.前端ajax使用 $.aja…

【HDU - 1326】Box of Bricks(模拟水题)

题干&#xff1a;Little Bob likes playing with his box of bricks. He puts the bricks one upon another and builds stacks of different height. Look, Ive built a wall!, he tells his older sister Alice. Nah, you should make all stacks the same height. Then you …

微信公众平台网站开发JS_SDK遇到的bug——wx.config注册提示成功,但部分接口注册失败问题

1 2022-02-23 使用微信公众平台调用扫一扫接口&#xff0c;总是注册不成功 这是进行注册后成功注册的接口提示 尝试注册了以下接口 拥有相关权限 解决办法&#xff1a;猜测失败原因为&#xff1a;子界面进行注册&#xff0c;在父界面进行注册后&#xff0c;成功

layui 流加载flow遇到的问题

目的&#xff1a;在界面中想实现&#xff0c;进入界面加载部分数据&#xff0c;拥有搜索功能&#xff0c;可加载新的数据以替换旧数据&#xff0c;替换过程中想要清空现有数据时&#xff0c;使用jquery方法 $(*).remove();删除了流控件&#xff0c;特别记录一下问题&#xff0…

【HDU - 1276】士兵队列训练问题 (报数问题 模拟)

题干&#xff1a;某部队进行新兵队列训练&#xff0c;将新兵从一开始按顺序依次编号&#xff0c;并排成一行横队&#xff0c;训练的规则如下&#xff1a;从头开始一至二报数&#xff0c;凡报到二的出列&#xff0c;剩下的向小序号方向靠拢&#xff0c;再从头开始进行一至三报数…

React学习,Babel ES6兼容运行使用的命令行整理

测试项目为&#xff0c;一个js文件引用其他ES6编写的文件&#xff0c;最终网页中引用打包好的最终js文件 注意&#xff1a;需要安装Node.js,没有的话&#xff0c;需要搜索安装 1 Browserify //在终端中输入如下命令&#xff0c;可以通过 npm 安装 Browserify&#xff1a; $ n…

【HDU - 1870】愚人节的礼物(水题模拟 思想类似于栈?)

题干&#xff1a;四月一日快到了&#xff0c;Vayko想了个愚人的好办法——送礼物。嘿嘿&#xff0c;不要想的太好&#xff0c;这礼物可没那么简单&#xff0c;Vayko为了愚人&#xff0c;准备了一堆盒子&#xff0c;其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒…