hdu---2087---剪花布条
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087
这题水的不要不要的,各种数据都能过,醉醉的
写他的目的是在KMP专题上随时都要充实自己,又长知识了。
kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。
常规方法是遍历a的每一个位置,然后从该位置开始和b进行匹配,但是这种方法的
复杂度是O(nm)。kmp算法通过一个O(m)的预处理,使匹配的复杂度降为O(n+m)。
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include<vector> #include<queue> #include<algorithm>using namespace std; typedef long long LL;const int maxn=1005; const int INF=0x3f3f3f3f;char s1[maxn], s2[maxn];int main() {while(scanf("%s", s1), strcmp(s1, "#")){scanf("%s", s2);int len1=strlen(s1);int len2=strlen(s2);if(len1<len2){printf("0\n");continue;}int ans=0, f=1;for(int i=0; i<len1; i++){if(s1[i]==s2[0]){for(int j=1; j<len2; j++){i++;if(s1[i]!=s2[j]){f=0;break;}}if(f)ans++;elsef=1;}}printf("%d\n", ans);}return 0; }
用指针解决
直接调用库函数strstr()。
strstr 语法:
#include <string.h>
char *strstr( const char *str1, const char *str2 );
功能:函数返回一个指针,它指向字符串str2 首次出现于字符串str1中的位置,如果没有找到,返回NULL。
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include<vector> #include<queue> #include<algorithm>using namespace std; typedef long long LL;const int maxn=1005; const int INF=0x3f3f3f3f;char s1[maxn], s2[maxn];int main() {while(scanf("%s", s1), strcmp(s1, "#")){scanf("%s", s2);char *p;int len=strlen(s2);int ans=0;for(p=s1; p=strstr(p, s2); ans++, p+=len);printf("%d\n", ans);}return 0; }
转载于:https://www.cnblogs.com/w-y-1/p/5781972.html
hdu---2087---剪花布条相关推荐
- HDU 2087 剪花布条 KMP入门
Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条.计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...
- hdu 2087 剪花布条
http://acm.hdu.edu.cn/showproblem.php?pid=2087 水题,注意细节就可以了. 代码如下: #include<iostream> #include& ...
- HDU 2087剪花布条 KMP
KMP算法入门题 哥第一次写KMP惭愧啊,惭愧getnext写得蛋痛,后面的KMP部分更蛋痛.改了N久 #include<stdio.h> #include<string.h> ...
- HDUOJ 2087 剪花布条
题目链接 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Inp ...
- 剪花布条(KMP入门)
剪花布条 HDU - 2087 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一 ...
- 【hdu 2087】剪花布条
今天去刷了一下前几届学长大一时的周赛题,主要收获是学了点string类的基本用法. 题目链接:传送门 剪花布条 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰 ...
- HDU2087 剪花布条【KMP】
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- 2016 UESTC Training for Search Algorithm String I - 谭爷剪花布条 KMP
I - 谭爷剪花布条 Time Limit: 3000/100MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- 剪花布条(HDU 2087)
[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher C - 剪花布条 题目: Description 一块花布条,里面有些图案,另有一块直接可用的小饰条, ...
- HDU2087剪花布条
Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...
最新文章
- 原创“.NET研究”企业级控件库之图片浏览控件
- Mysql学习总结(5)——MySql常用函数大全讲解
- TEMPO研究第一年影像学数据: 骨侵蚀修复几乎只出现在无关节肿胀或肿胀改善组...
- [20170410]快速找回触发器内容.txt
- Git的使用——解决中文乱码
- 合成人声、人脸替换等深度合成信息内容须进行显著标识
- React.js 官网入门教程 分离文件 操作无法正常显示HelloWord
- php 嵌入手机百度地图,C# 程序中嵌入百度地图
- java线程池_Java 线程池 8 大拒绝策略,面试必问!
- chkconfig命令详解
- Unity3d C#使用Highlighting System 5.0高光插件的详细使用教学和脚本动态操作
- 蓝桥杯 C语言 试题 历届试题 网络寻路
- 电脑快捷启动工具 Lily5.1
- 为啥俺要写博客--凭什么?
- 小乌龟代码提交Gitee
- 数字电视专业术语--DTV名词扫盲
- 搜狐畅言评论系统使用
- 2022年 合肥市信息学竞赛市赛 小学组
- 易语言多线程批量登录实现一键选中取消选择框账号
- [转]基于SSD的数据库性能优化
热门文章
- 高等数学-第一章 函数 极限 连续
- ES(Elasticsearch)解除索引只读限制
- Java 枚举(enum)剖析
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战...
- 阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
- 利用VS自带发布功能实现web项目快速部署
- UWP开发学习笔记3
- tensorflow 变量共享
- 关于springMVC的日志管理
- JS学习之表格的排序