hdu 2203

来源:互联网 发布:推荐les淘宝店 编辑:程序博客网 时间:2024/06/05 18:20

传送门:HDU 2203

题解

如果把s1复制, 那么如果原先s1可循环转移包含s2, 复制后的s1必包含s2(前提是s1的原串长不小于s2串长)
kmp也可以做, 另外这个是在trie树的专题里, 表示蒻苣想不到怎么打


AC code:

/* *adrui's submission *Language : C++ *Result : Accepted *Favorite : Dragon Balls *Love : yy * *Standing in the Hall of Fame */#include<algorithm>#include<cstdio>#include<iostream>#include<map>#include<cstring>#include<string>using namespace std;#define debug 0#define M(a, b) memset(a, b, sizeof(a))#define inf 0x3f3f3f3fint main(){#if debug    freopen("in.txt", "r", stdin);#endif // debug    cin.tie(0);    cin.sync_with_stdio(false);    char s1[100005], s2[50005];    while(cin >> s1 >> s2){        if(strlen(s1) < strlen(s2)){            cout << "no" << endl;            continue;        }        int len = strlen(s1);        for(int i = len; i < 2 * len; ++i)            s1[i] = s1[i - len];//复制        s1[2 * len] ='\0';        if(strstr(s1, s2)) cout << "yes" << endl;//strstr函数        else  cout << "no" << endl;    }    return 0;}

hdu 101题 啊, 好菜,现在才这点题量


这里写图片描述

0 0