1 条题解

  • 0
    @ 2025-8-24 23:08:33

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar jiqihang
    **

    搬运于2025-08-24 23:08:33,当前版本为作者最后更新于2025-01-18 11:39:44,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目链接

    P11579 [CCC2020] Cyclic Shifts

    思路

    注意看,数据范围写着 1S,T1001 \le |S|,|T| \le 100

    那么 S,T|S|,|T| 是什么呢?

    注意到,SSTT 都是字符串,指的是其长度。

    范围如此小,考虑打表!

    好吧,这题打不了表。

    那么我们就暴力加模拟。

    1. ss 的第一位放至末尾。
    2. tt 中找有没有移位后的 ss,有则输出 yes 并且结束程序。
    3. 如果没有,循环结束后输出 no

    注意字符串 ss 要找个替身来记录。

    这里教你们两个字符串函数:

    1. substr 函数:用于截取子字符串。本例中用于提取 ss 截取第一位后的字符串。
    2. find 函数:寻找字符串。本例中用于在 tt 中找有没有移位后的 ss

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        string t,s;
        cin>>t>>s;
        string ss=s;//找替身
        for(int i=0;i<s.size();i++)
        {
        	string hc;
        	hc+=ss[0];
        	ss=ss.substr(1); 
        	ss=ss+hc;
            //模拟组建过程
        	if(t.find(ss)!=-1)
        	{
        		cout<<"yes";
    			return 0; 
    		}//判断
    	}
    	cout<<"no";
    	return 0;
    }
    
    • 1

    信息

    ID
    11128
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者