XDOJ_1166_KMP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XDOJ_1166_KMP相关的知识,希望对你有一定的参考价值。

http://acm.xidian.edu.cn/problem.php?id=1166

 

判断环是否相等,直接strstr。

 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

char a[200005],b[100005];
int n;

void change()
{
    for(int i = 0;i < n;i++)
    {
        if(b[i] == 3) b[i] = 1;
        else    b[i] += 1;
    }
}
int main()
{
    while(~scanf("%d",&n))
    {
        scanf("%s%s",a,b);
        for(int i = 0;i < n;i++)    a[i+n] = a[i];
        a[2*n] = 0;
        char *p;
        for(int i = 0;i < 4;i++)
        {
            char *p = strstr(a,b);
            if(p != NULL)   break;
            change();
        }
        if(p == NULL)   printf("no\n");
        else    printf("yes\n");
    }
    return 0;
}

 

以上是关于XDOJ_1166_KMP的主要内容,如果未能解决你的问题,请参考以下文章

XDOJ_1175_子串

XDOJ_1160_set

XDOJ_1076_进制

XDOJ_1141_水

XDOJ_1017_水

XDOJ_1129_水