2020 牛客多校第一场 F.Infinite String Comparision

链接

题意

  给出字符串a,b,判断 \(a^\infty \) 与 \(b^\infty \)的大小, 当x=“abc”时,\(x^\infty =abcabc... \)。

思路

  最开始是直接将两个字符串分别扩展到 LCM 的长度,但是炸了,然后瞎猜匹配到长的字符串的两倍。题解给出的长度是a+b-gcd(a,b)。

代码

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int maxn=1e4+10;
 6 int main()
 7 {
 8     string s1,s2;
 9     while(cin>>s1>>s2)
10     {
11         string a="",b="";
12         int l1=s1.length(),l2=s2.length();
13         string s;
14         int ok=0;
15         if(l1<l2)
16         {
17             s2+=s2;
18             for(int i=0; i<2*l2; i++)
19                 if(s1[i%l1]>s2[i])
20                 {
21                     ok=1;
22                     break;
23                 }
24                 else  if(s1[i%l1]<s2[i])
25                 {
26                     ok=-1;
27                     break;
28                 }
29         }
30         else
31         {
32             s1+=s1;
33             for(int i=0; i<2*l1; i++)
34                 if(s1[i]>s2[i%l2])
35                 {
36                     ok=1;
37                     break;
38                 }
39                 else  if(s1[i]<s2[i%l2])
40                 {
41                     ok=-1;
42                     break;
43                 }
44         }
45         if(ok==-1)
46             printf("<\n");
47         else if(ok==0)
48             printf("=\n");
49         else
50             printf(">\n");
51     }
52     return 0;
53 }

 

posted @ 2020-08-13 01:20  一个只会爆零的小菜鸡  阅读(129)  评论(0编辑  收藏  举报