剪花布条 HDU - 2087
要求各个匹配出来的子串不重叠的kmp。实际上直接贪心从前往后找,每找到一个就把当前j标为0即可。(一般kmp是标为f[j])
#include<cstdio>
#include<cstring>
int f[];
char s[];
char s2[];
int m,n;
void getf()
{
int i=,j=f[]=-;
while(i<m)
{
while(j>=&&s[i]!=s[j]) j=f[j];
i++;j++;
f[i]=s[i]==s[j]?f[j]:j;
}
}
int kmp()
{
int i=,j=,ans=;
while(i<n)
{
while(j>=&&s[j]!=s2[i]) j=f[j];
i++;j++;
if(j==m)
{
ans++;
j=;
}
}
return ans;
}
int main()
{
while(scanf("%s%s",s2,s)==)
{
m=strlen(s);
n=strlen(s2);
getf();
printf("%d\n",kmp());
}
return ;
}
剪花布条 HDU - 2087的更多相关文章
- 剪花布条 HDU - 2087(kmp,求不重叠匹配个数)
Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...
- 【kmp】 剪花布条 HDU - 2087
[题意概述] [解题思路] 从左往右找,看有几个匹配的字符串,但要注意例如 aaaaaa aa的输出是3 而不是5,可以这样理解:画布需要减去,一旦减去也就没有了的 [AC] #include< ...
- hdu 2087 剪花布条 KMP多次匹配
剪花布条 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? I ...
- HDU——2087剪花布条
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdoj 2087 剪花布条
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU-2087 剪花布条
http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory ...
- (KMP)剪花布条 -- hdu -- 2087
http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory ...
- 剪花布条[HDU2087]
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 剪花布条(kmp)
欢迎参加——每周六晚的BestCoder(有米!) 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
随机推荐
- jquery 深入学习笔记之中的一个 (事件绑定)
[jquery 事件绑定] 1.加入元素事件绑定 (1) 加入事件为当前元素 $('p').on('click',function(){ //code here ... }); (2) 加入事件为未来 ...
- 写入文本文件时“\n”不是回车换行而是个方块“■”的解决方法
用“\n”写入文本文件时,打开文本文件显示的为什么不是回车换行而是个黑方块“■”,但用file()读取时还是认为是一行一行的? 首先在WINDOWS里回车换行是"\r\n"; 而L ...
- 数字和为sum的方法数(动态规划)
题目描述 给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数.当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案. 输入描述: 输入为两行: 第一行为 ...
- vscode中检测代码中的空白行并去除的方法【转】
按下ctrl+h键进行正则匹配:^\s*(?=\r?$)\n 然后直接替换,再看代码发现空行已经不见了.
- chdir函数的使用【学习笔记】
#include "apue.h" #include <fcntl.h> int main(void) { ) err_sys("chdir failed&q ...
- 织梦CMS使用JS实时动态调用评论数
网站中只要启用了会员系统,网站中的文章就会有评论,在网站首页中调用会员评论也能提升会员体验度,网页都是静态页面,如果每有一个评论都更新html的话就会有点浪费资源了,所以这里给大家分享一个使用JS调用 ...
- c#-关于自动属性的思考
参考:c#-关于自动属性的思考 我的理解:自动属性跟 公有字段 一模一样,编程习惯而已.目前是这么认为的. 自动属性:public string Name{ get; set } 公有字段:pub ...
- 牛人的ACM经验 (转)
一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈 ...
- hadoop datanode启动失败(All directories in dfs.data.dir are invalid)
由于hadoop节点的磁盘满了,导致节点死掉,今天对其进行扩容.首先,将原节点的数据拷贝到目标节点下,从而避免数据的丢失,但是在执行hadoop_daemon.sh start datanode后没有 ...
- function.py
#文档字符串 def square(x): 'calculates the square of the number x' return x*x square.__doc__ help(square) ...