hdu 2087 剪花布条
来源:互联网 发布:免费的域名解析软件 编辑:程序博客网 时间:2024/05/24 06:50
剪花布条
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14255 Accepted Submission(s): 9018
Problem Description
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
Input
输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output
输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input
abcde a3aaaaaa aa#
Sample Output
03
Author
qianneng
Source
冬练三九之二
Recommend
lcy | We have carefully selected several similar problems for you: 1711 1686 2091 2094 3068
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define N 100000using namespace std;int n,m,t[N];char s[N],s1[N];void calc(){ t[0]=-1; int j; for (int i=0;i<n;i++) { j=t[i]; while(j!=-1&&s[i]!=s[j]) j=t[j]; t[i+1]=++j; }}int solve(){ int i=0,j=0,ans=0; while (i<m) { if (j==-1||s1[i]==s[j]) i++,j++; else j=t[j]; if (j==n) { j++; ans++; } } return ans;}int main(){ scanf("%s",s1); while (s1[0]!='#') { scanf("%s",s); m=strlen(s1); n=strlen(s); calc(); printf("%d\n",solve()); scanf("%s",s1); }}
0 0
- HDU 2087 剪花布条
- HDU 2087 剪花布条
- Hdu 2087 - 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu-2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087剪花布条
- HDU 2087剪花布条
- HDU 2087 剪花布条
- MySQL基本概念
- CodeForces - 659C Tanya and Toys (map&模拟)
- 标准C++中的string类的用法总结
- yah3c在ubuntu下面的联网之路
- R 常用函数
- hdu 2087 剪花布条
- Tiny4412 开发板 编译环境搭建
- GitHub初级学习
- Android网络请求框架之Retrofit实践
- C# Encoding
- 支持向量机SVM核函数的选择(七)
- Android Layout 布局动画的介绍
- MySql key and index
- 利用循环队列打印输出杨辉三角