1536.Cyclically Isomorphic

Time Limit: 1s Memory Limit: 512MB

If there exists an integer $k$ such that string $S$ becomes equal to string $T$ after being cyclically right-shifted by $k$ positions, then the strings $S$ and $T$ are said to be cyclically right-shifted.

Now, given $n$ strings of length $m$ consisting of lowercase letters , there are a total of $Q$ queries. Each query provides two positive integers $x$ and $y$. If the strings $s_x$ and $s_y$ are cyclically right-shifted , output 'Yes'; otherwise, output 'No'.

Input Format(From the terminal/stdin)

The input consists of multiple test cases. The first line contains a single integer $T(1≤T≤5)$ — the number of test cases. Description of the test cases follows.

The first line of each test case contains two integers $n$ and $m (1≤n×m≤10^5)$— the number of the strings and the length of strings.

Each of the next $n$ lines contains a string of lowercase letters $s_i$。

The next line contains a positive integer $Q (1≤Q≤10^5)$。

Each of the next $Q$ lines contains two integers $x,y (1≤x,y≤n)$ asks whether the string $s_x$ and the string $s_y$ are cyclic isomorphic.

Output Format(To the terminal/stdout)

For each test case, output $Q$ lines. Each line should contain a string indicating whether the current query strings $s_x$ and $s_y$ are cyclically isomorphic. If they are cyclically isomorphic, output 'Yes'; otherwise, output 'No'.

Sample Input

Copy
2
2 2
ab 
ba
1
1 2
4 3
aab
baa
bba
bab
6
1 2
1 3
1 4
2 3
2 4
3 4
 \n
 · \n
  \n
  \n
 \n
 · \n
 · \n
   \n
   \n
   \n
   \n
 \n
 · \n
 · \n
 · \n
 · \n
 · \n
 · \n

Sample Output

Copy
Yes
Yes
No
No
No
No
Yes
   \n
   \n
  \n
  \n
  \n
  \n
   \n
Source: 2023“钉耙编程”中国大学生算法设计超级联赛(1)

Submit

请先 登录

© 2025 FAQs