zoukankan      html  css  js  c++  java
  • cf187 div2 D

     1 /*
     2   Problem:cf187 div2 D
     3   Type:string
     4   Time:2013.06.09 
     5   //思路,直接统计b字符串每个字符开始,经过一个a字符串的结果
     6     所谓结果,a的一个循环包含多少个当前字符后的字符
     7     保存完后对a统计即可 
     8     好吧,够绕口的,直接看代码比较清楚 
     9 */
    10 #include <iostream>
    11 #include <cstdio>
    12 #include <cstdlib>
    13 #include <cstring>
    14 #include <cmath>
    15 #include <algorithm>
    16 #include <string>
    17 #include <stack>
    18 #include <set>
    19 #include <queue>
    20 #include <map>
    21 #include <fstream>
    22 #include <vector>
    23 #include <list>
    24 #define MaxPoint 20000
    25 #define MaxLine 50
    26 #define MaxNum 1999997
    27 #define Inf 0xfffff
    28 #define M0(a) memset(a, 0, sizeof(a))
    29 using namespace std;
    30 int n, m;
    31 char a[200], b[200];
    32 int next[200], cnt[200];
    33 void solve(){
    34       scanf("%s%s", &a, &b);  
    35       int la = strlen(a), lb = strlen(b), cur;
    36       
    37       for (int i = 0; i < lb; ++i){
    38           cur = i;
    39           for (int j = 0; j < la; ++j) //从cur开始在一个周期的a的作用下能到达哪里,并统计当前答案,记住next数组 
    40              if (a[j] == b[cur]){
    41                 ++cur;
    42                 if (cur == lb){
    43                      ++cnt[i];
    44                      cur = 0;
    45                 }
    46              }
    47           next[i] = cur;
    48       }
    49       long long ans = cur = 0;
    50       for (int i = 1; i <= n; ++i){ //直接计算每个a数组的答案 
    51           ans += cnt[cur];
    52           cur = next[cur];
    53       }
    54       printf("%I64d\n", ans / m);
    55 }
    56 
    57 int main(){
    58      freopen("a.in","r", stdin);
    59      freopen("a.out","w", stdout);
    60      scanf("%d%d", &n, &m);
    61      solve();
    62      fclose(stdin);   fclose(stdout);
    63 } 
  • 相关阅读:
    Android Studio 生成Jar包时遇到的gradlew下载问题
    未解决问题
    Android -- android.os.Parcelable[] cannot be cast to ...
    vulkan gpu limits in mali
    Why GPU Program is expensive in CPU
    iOS native plugin 的代码sample
    USC-- compute shader ps vs
    zprepass 之后再base pass为什么用equal不用lessequal
    memory management Vulkan
    hlslcc
  • 原文地址:https://www.cnblogs.com/yzcstc/p/3127889.html
Copyright © 2011-2022 走看看