zoukankan      html  css  js  c++  java
  • bzoj 3620: 似乎在梦中见过的样子

    暴力处理每一个左端点,然后就和NOI2014动物园是差不多(几乎是一样的)

    (一开始还以为是什么KMP的奇怪姿势)

     1 #include<bits/stdc++.h>
     2 #define N 1000005
     3 #define LL long long
     4 #define inf 0x3f3f3f3f
     5 using namespace std;
     6 inline int ra()
     7 {
     8     int x=0,f=1; char ch=getchar();
     9     while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();}
    10     while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}
    11     return x*f;
    12 }
    13 int k,n,fail[N],ans;
    14 char ch[N];
    15 int main()
    16 {
    17     scanf("%s",ch+1); k=ra();
    18     n=strlen(ch+1);
    19     for (int i=1; i<=n-k*2; i++)
    20     {
    21         int fix=i-1; fail[i]=i-1;
    22         for (int j=i+1; j<=n; j++)
    23         {
    24             while (ch[fix+1]!=ch[j] && fix>i-1) fix=fail[fix]; 
    25             if (ch[fix+1]==ch[j]) fix++; fail[j]=fix;
    26         }
    27         for (int j=i+k*2; j<=n; j++)
    28         {
    29             int pos=j;
    30             while ((fail[pos]-i+1)*2>=j-i+1)
    31                 pos=fail[pos];
    32             if (fail[pos]-i+1>=k) ans++;
    33         }
    34     }
    35     cout<<ans;
    36     return 0;
    37 }
  • 相关阅读:
    水晶报表开发
    ASP.NET页面刷新方法总结
    DataList获取当前ID
    flexviewer让指定slid值对于的图层可见
    WKT
    消息的分类
    MFC画图
    MFC画文字DrawText,GetTextExtent,GetTextMetrics
    djvu是什么
    代码提示插件 Visual Assistxv
  • 原文地址:https://www.cnblogs.com/ccd2333/p/6440200.html
Copyright © 2011-2022 走看看