当前位置: 首页 > news >正文

HDU-2087-剪花布条

链接:https://vjudge.net/problem/HDU-2087

题意:

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

思路:

KMP模板,算得时候, 当j移到尾部时,res+1,j置为0,再继续。

代码:

#include <iostream>
#include <memory.h>
#include <vector>
#include <map>
#include <algorithm>
#include <cstdio>
#include <math.h>
#include <queue>
#include <string>

using namespace std;

typedef long long LL;

const int MAXN = 1e3 + 10;

int Next[MAXN];
int lena, lenb;
string a, b;

void Get_Next()
{
    int i = 0;
    int k = -1;
    Next[i] = k;
    while (i < lenb)
    {
        if (k == -1 || b[k] == b[i])
        {
            k++;
            i++;
            if (b[k] == b[i])
                Next[i] = Next[k];
            else
                Next[i] = k;
        }
        else
            k = Next[k];
    }
}

int Kmp()
{
    int i = 0,j = 0;
    int res = 0;
    while (i < lena)
    {
        if (j == -1 || a[i] == b[j])
            i++,j++;
        else
            j = Next[j];
        if (j == lenb)
        {
            res++;
            j = 0;
        }
    }
    return res;
}

int main()
{
    while (cin >> a)
    {
        if (a[0] == '#')
            break;
        cin >> b;
        lena = (int)a.length();
        lenb = (int)b.length();
        memset(Next, 0, sizeof(Next));
        Get_Next();
        cout << Kmp() << endl;
    }

    return 0;
}

  

转载于:https://www.cnblogs.com/YDDDD/p/10505802.html

相关文章:

  • 关于线性基的一丢丢理解
  • 基于阿里雲Oracle12cR2(Linux)實例靜默安装Cloud Control 13c 13.3
  • Spring Boot + thymeleaf 后台与页面(二)
  • vue学习系列(二)vue-cli
  • java8简短教程(持续更新含部分9,10,11)
  • Kali linux 2018安装后全屏乱码解决
  • SAP云平台对Kubernetes的支持
  • Centos6.5配置DNS
  • 机器学习你要了解的5件事
  • web开发中的跨域整理
  • Kafka连接器深度解读之JDBC源连接器
  • java面试-深入理解JVM(四)——对象内存的分配策略
  • laravel中使一段文字,限制长度,并且超出部分使用指定内容代替
  • AWS提高声音辨识精确度为解决ML训练数据平衡性
  • iframe的高度自适应问题
  • [译] 怎样写一个基础的编译器
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 2017 前端面试准备 - 收藏集 - 掘金
  • CSS 三角实现
  • js继承的实现方法
  • session共享问题解决方案
  • spring-boot List转Page
  • SpriteKit 技巧之添加背景图片
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 从0实现一个tiny react(三)生命周期
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 读懂package.json -- 依赖管理
  • 浮现式设计
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 解析 Webpack中import、require、按需加载的执行过程
  • 一文看透浏览器架构
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ###C语言程序设计-----C语言学习(3)#
  • $GOPATH/go.mod exists but should not goland
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)c52学习之旅-简单了解单片机
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (新)网络工程师考点串讲与真题详解
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .naturalWidth 和naturalHeight属性,
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net mvc部分视图
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net的socket示例
  • .Net小白的大学四年,内含面经
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @WebService和@WebMethod注解的用法
  • []T 还是 []*T, 这是一个问题
  • [100天算法】-x 的平方根(day 61)