CF1794A.Prefix and Suffix Array

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Marcos loves strings a lot, so he has a favorite string ss consisting of lowercase English letters. For this string, he wrote down all its non-empty prefixes and suffixes (except for ss) on a piece of paper in arbitrary order. You see all these strings and wonder if Marcos' favorite string is a palindrome or not. So, your task is to decide whether ss is a palindrome by just looking at the piece of paper.

A string aa is a prefix of a string bb if aa can be obtained from bb by deletion of several (possibly, zero or all) characters from the end.

A string aa is a suffix of a string bb if aa can be obtained from bb by deletion of several (possibly, zero or all) characters from the beginning.

A palindrome is a string that reads the same backward as forward, for example, strings "gg", "ioi", "abba", "icpci" are palindromes, but strings "codeforces", "abcd", "alt" are not.

马尔科斯非常喜爱字符串,因此他有一个由小写英文字母组成的最爱字符串 ss。对于该字符串,他将 ss 的所有非空前缀和后缀(不包括 ss 本身)以任意顺序写在一张纸上。你看到了纸上的所有这些字符串,并想知道马尔科斯的最爱字符串 ss 是否为回文串。因此,你的任务是仅根据这张纸上的字符串来判断 ss 是否为回文串。

若字符串 aa 可通过从字符串 bb 的末尾删除若干个(可能为零个或全部)字符得到,则称 aa 是 bb 的一个前缀。

若字符串 aa 可通过从字符串 bb 的开头删除若干个(可能为零个或全部)字符得到,则称 aa 是 bb 的一个后缀。

回文串是指正读与反读都相同的字符串,例如字符串 "gg"、"ioi"、"abba"、"icpci" 是回文串,但字符串 "codeforces"、"abcd"、"alt" 不是。

输入格式

Each test consists of multiple test cases. The first line contains a single integer tt (1≤t≤1201 \le t \le 120) — the number of test cases. The description of test cases follows.

The first line of each test case contains a single integer nn (2≤n≤202\le n \le 20) — the length of the string ss.

The second line of each test case contains 2n−22n-2 strings a1,a2,⋯ ,a2n−2a_1, a_2, \cdots, a_{2n-2} — all non-empty prefixes and suffixes of ss, not including itself, in arbitrary order.

It is guaranteed that these strings are all the non-empty prefixes and suffixes of some string consisting of lowercase English letters.

每个测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤1201 \le t \le 120),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(2≤n≤202\le n \le 20),表示字符串 ss 的长度。

每个测试用例的第二行包含 2n−22n-2 个字符串 a1,a2,⋯ ,a2n−2a_1, a_2, \cdots, a_{2n-2},即字符串 ss 的所有非空前缀和后缀(不包括 ss 本身),以任意顺序给出。

保证这些字符串恰好构成某个仅由小写英文字母组成的字符串的所有非空前缀与后缀。

输出格式

For each test case, output "YES" if ss is a palindrome, and "NO" otherwise.

You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.

对于每个测试用例,如果 ss 是回文串,则输出 “YES”;否则输出 “NO”。

您可以以任意大小写形式输出答案(大写或小写均可)。例如,字符串 “yEs”、“yes”、“Yes” 和 “YES” 均会被识别为肯定回答。

输入输出样例

  • 输入#1

    5
    4
    bcd cd a d abc ab
    3
    i io i oi
    2
    g g
    3
    t al lt a
    4
    bba a ab a abb ba

    输出#1

    NO
    YES
    YES
    NO
    YES

说明/提示

In the first test case, ss is "abcd". Its prefixes are "a", "ab" and "abc", and its suffixes are "d", "cd" and "bcd". As the string "abcd" is not a palindrome, the answer is NO.

In the second test case, ss is "ioi". Its prefixes are "i" and "io", and its suffixes are "i" and "oi". As the string "ioi" is a palindrome, the answer is YES.

In the third test case, ss is "gg" which is a palindrome.

In the fourth test case, ss is "alt" which is not a palindrome.

在第一个测试用例中,ss 为 "abcd"。它的前缀是 "a"、"ab" 和 "abc",后缀是 "d"、"cd" 和 "bcd"。由于字符串 "abcd" 不是回文串,答案为 NO。

在第二个测试用例中,ss 为 "ioi"。它的前缀是 "i" 和 "io",后缀是 "i" 和 "oi"。由于字符串 "ioi" 是回文串,答案为 YES。

在第三个测试用例中,ss 为 "gg",它是一个回文串。

在第四个测试用例中,ss 为 "alt",它不是一个回文串。

输入解题思路,AI测评打分。不知道怎么写?

首页