CF1823D Unique Palindromes

题目描述

令 $p(t)$ 表示字符串 $t$ 的不同回文子串数(不同即多次出现只算一次)。 令 $p(s,m)$ 表示字符串 $s$ 的 $m$ 前缀的不同回文子串数,即 $p(s,m)=p(t)$,其中 $t=s[1..m]$。 如:$t=\texttt{abcbbcabcb}$,则 $p(t)=6$($\texttt{a},\texttt{b},\texttt{c},\texttt{bb},\texttt{bcb},\texttt{cbbc}$),$p(t,5)=p(\texttt{abcbb})=5$($\texttt{a},\texttt{b},\texttt{c},\texttt{bb},\texttt{bcb}$)。 给定整数 $n$ 和 $k$ 个条件,第 $i$ 个条件用 $(x_i,c_i)$ 表示,意思是对于字符串 $s$,满足 $p(s,x_i)=c_i$。 请你构造一个由小写拉丁字母组成的长度为 $n$ 的字符串 $s$,使其满足所有的 $k$ 个条件。

输入格式

本题有**多组数据**。第一行输入数据组数 $t$。 对于每组数据,第一行输入两个整数 $n$ 和 $k$,第二行输入 $k$ 个整数 $x_1,x_2,\dots,x_k$,第三行输入 $k$ 个整数 $c_1,c_2,\dots,c_k$。

输出格式

对于每组数据: 如果不能构造满足所有 $k$ 个条件且长度为 $n$ 的字符串 $s$,输出一行 `NO`;否则,输出 `YES`,然后输出任意一种满足所有条件的 $s$。

说明/提示

$1\le t\le10^4$,$3\le n\le2\times10^5$,$1\le k\le20$。 $3\le x_1