• HDU 2087 剪花布条


    剪花布条

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 24909    Accepted Submission(s): 15362


    Problem Description
    一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
     
    Input
    输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
     
    Output
    输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
     
    Sample Input
    abcde a3 aaaaaa aa #
     
    Sample Output
    0 3
     
    Author
    qianneng
     1 #include <iostream>
     2 #include <cstring>
     3 #include <string>
     4 #include <algorithm>
     5 using namespace std;
     6 int n;
     7 char a[1005];
     8 char b[1005];
     9 int nxt[1005];
    10 int la, lb;
    11 void get_nxt()
    12 {
    13     int i = 0;
    14     int j = -1;
    15     nxt[0] = -1;
    16     while (i < lb)
    17     {
    18         if (j == -1 || b[i] == b[j]) nxt[++i] = ++j;
    19         else j = nxt[j];
    20     }
    21 }
    22 int main()
    23 {
    24     while (cin >> a)
    25     {
    26         if (a[0] == '#') break;
    27         else cin >> b;
    28         la = strlen(a);
    29         lb = strlen(b);
    30         get_nxt();
    31         int i = 0, j = 0;
    32         int s = 0;
    33         while (i < la)
    34         {
    35             if (j == -1 || a[i] == b[j])
    36             {
    37                 i++;
    38                 j++;
    39             }
    40             else j = nxt[j];
    41             if (j == lb)
    42             {
    43                 s++;
    44                 j = 0;//不是j=nxt[j],因为不能重复
    45             }
    46         }
    47         cout << s << endl;
    48     }
    49     return 0;
    50 }
     
  • 相关阅读:
    第四十七课、父子间的冲突
    第四十六课、继承中的构造与析构
    第四十五课、不同的继承方式
    第四十四课、继承中的访问级别
    第四十三课、继承的概念和意义
    第四十二课、类型转换函数(下)
    第四十一课、类型转化构造函数(上)
    暴力大法好
    HideProcess
    Hduacm—5497
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13271221.html
Copyright © 2020-2023  润新知