Codeforces Round 868 (Div. 2)
D
Unique Palindromes
Codeforces
1900
原题
← CE →
翻译中…

A palindrome is a string that reads the same backwards as forwards. For example, the string abcba is palindrome, while the string abca is not.

翻译中…

Let $p(t)$ be the number of unique palindromic substrings of string $t$, i. e. the number of substrings $t[l \dots r]$ that are palindromes themselves. Even if some substring occurs in $t$ several times, it's counted exactly once. (The whole string $t$ is also counted as a substring of $t$).

翻译中…

For example, string $t$ $=$ abcbbcabcb has $p(t) = 6$ unique palindromic substrings: a, b, c, bb, bcb and cbbc.

翻译中…

Now, let's define $p(s, m) = p(t)$ where $t = s[1 \dots m]$. In other words, $p(s, m)$ is the number of palindromic substrings in the prefix of $s$ of length $m$. For example, $p($abcbbcabcb$, 5)$ $=$ $p($abcbb$) = 5$.

翻译中…

You are given an integer $n$ and $k$ "conditions" ($k \le 20$). Let's say that string $s$, consisting of $n$ lowercase Latin letters, is good if all $k$ conditions are satisfied at the same time. A condition is a pair $(x_i, c_i)$ and have the following meaning:

翻译中…
  • $p(s, x_i) = c_i$, i. e. a prefix of $s$ of length $x_i$ contains exactly $c_i$ unique palindromic substrings.
翻译中…

Find a good string $s$ or report that such $s$ doesn't exist.

翻译中…

Look in Notes if you need further clarifications.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line contains the number of test cases $t$ ($1 \le t \le 10^4$). The description of the test cases follows.

翻译中…

The first line of each test case contains two integers $n$ and $k$ ($3 \le n \le 2 \cdot 10^5$; $1 \le k \le 20$) — length of good string $s$ and number of conditions.

翻译中…

The second line of each test case contains $k$ integers $x_1, x_2, \dots, x_k$ ($3 \le x_1 \lt x_2 \lt \dots \lt x_k = n$) where $x_i$ is the length of the prefix in the $i$-th condition.

翻译中…

The third line of each test case contains $k$ integers $c_1, c_2, \dots, c_k$ ($3 \le c_1 \le c_2 \le \dots \le c_k \le \min{\left(10^9, \frac{(n + 1) n}{2} \right)}$) where $c_i$ is the number of palindromic substrings in the $i$-th condition.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10 ^ 5$.

翻译中…

Output

翻译中…

For each test case, if there is no good string $s$ of length $n$ that satisfies all conditions, print NO.

翻译中…

Otherwise, print YES and a string $s$ of length $n$, consisting of lowercase Latin letters, that satisfies all conditions. If there are multiple answers, print any of them.

翻译中…

Note

翻译中…

In the first test case, string $s$ $=$ abcbbcabcb satisfies $k = 2$ conditions:

翻译中…
  • $p(s, x_1) = p(s, 5) =$ $p($abcbb$) = 5 = s_1$. Palindromic substrings are a, b, c, bb and bcb.
  • $p(s, x_2) = p(s, 10) =$ $p($abcbbcabcb$) = 6 = s_2$. Palindromic substrings are the same as above, and one extra substring cbbc.
翻译中…

In the second test case, string foo satisfies $k = 1$ condition:

翻译中…
  • $p($foo$) = 3$. Palindromic substrings are f, o and oo.
翻译中…

There are other possible answers.

翻译中…

In the third test case, string ayda satisfies $k = 2$ conditions:

翻译中…
  • $p($ayd$) = 3$. Palindromic substrings are a, y and d.
  • $p($ayda$) = 3$. Palindromic substrings are the same.
翻译中…

In the fourth test case, string wada satisfies $k = 2$ conditions:

翻译中…
  • $p($wad$) = 3$. Palindromic substrings are w, a and d.
  • $p($wada$) = 4$. Palindromic substrings are the same, and one extra substring ada.
翻译中…

In the fifth test case, it can be proven that there is no string of length $4$ which has $5$ palindromic substrings.

翻译中…

In the sixth test case, string abcbcacbab satisfies $k = 3$ conditions:

翻译中…
  • $p($abcb$) = 4$. Palindromic substrings are a, b, c and bcb.
  • $p($abcbca$) = 5$. Palindromic substrings are the same, and one extra substring cbc.
  • $p($abcbcacbab$) = 8$. Palindromic substrings are the same, and three extra substrings cac, bab and bcacb.
翻译中…

样例

Input #1
7
10 2
5 10
5 6
3 1
3
3
4 2
3 4
3 3
4 2
3 4
3 4
4 1
4
5
10 3
4 6 10
4 5 8
10 4
4 6 7 10
4 5 7 8
Output #1
YES
abcbbcabcb
YES
foo
YES
ayda
YES
wada
NO
YES
abcbcacbab
NO
InputCopy OutputCopy
题目信息
题号
1823D
时间限制
2 s
内存限制
256 MB
标签
构造
数学
字符串

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。