CF1744A.Number Replacement
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
An integer array a1,a2,…,an is being transformed into an array of lowercase English letters using the following prodecure:
While there is at least one number in the array:
- Choose any number x from the array a, and any letter of the English alphabet y.
- Replace all occurrences of number x with the letter y.
For example, if we initially had an array a=[2,3,2,4,1], then we could transform it the following way:
- Choose the number 2 and the letter c. After that a=[c,3,c,4,1].
- Choose the number 3 and the letter a. After that a=[c,a,c,4,1].
- Choose the number 4 and the letter t. After that a=[c,a,c,t,1].
- Choose the number 1 and the letter a. After that a=[c,a,c,t,a].
After the transformation all letters are united into a string, in our example we get the string "cacta".
Having the array a and the string s determine if the string s could be got from the array a after the described transformation?
一个整数数组 a1,a2,…,an 通过以下过程被转换为一个小写英文字母组成的数组:
只要数组中至少还存在一个数字,就执行如下操作:
- 从数组 a 中任选一个数字 x,再任选一个英文字母 y;
- 将数组中所有等于 x 的数字全部替换为字母 y。
例如,若初始数组为 a=[2,3,2,4,1],则可按如下方式变换:
- 选择数字 2 和字母 c,变换后 a=[c,3,c,4,1];
- 选择数字 3 和字母 a,变换后 a=[c,a,c,4,1];
- 选择数字 4 和字母 t,变换后 a=[c,a,c,t,1];
- 选择数字 1 和字母 a,变换后 a=[c,a,c,t,a]。
变换结束后,所有字母按顺序拼接成一个字符串;在本例中得到字符串 "cacta"。
给定数组 a 和字符串 s,请判断:字符串 s 是否可能由数组 a 经上述变换过程得到?
输入格式
The first line contains a single integer t (1≤t≤103) — the number of test cases.
Then the description of the test cases follows.
The first line of each test case contains a single integer n (1≤n≤50) — the length of the array a and the string s.
The second line of each test case contains exactly n integers: a1,a2,…,an (1≤ai≤50) — the elements of the array a.
The third line of each test case contains a string s of length n, consisting of lowercase English letters.
第一行包含一个整数 t(1≤t≤103)—— 测试用例的数量。
随后是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤50)—— 数组 a 和字符串 s 的长度。
每个测试用例的第二行包含恰好 n 个整数:a1,a2,…,an(1≤ai≤50)—— 数组 a 的元素。
每个测试用例的第三行包含一个长度为 n 的字符串 s,由小写英文字母组成。
输出格式
For each test case, output "YES", if we can get the string s from the array a, and "NO" otherwise. You can output each letter in any case.
对于每个测试用例,如果可以从数组 a 得到字符串 s,则输出 "YES";否则输出 "NO"。你可以以任意大小写形式输出每个字母。
输入输出样例
输入#1
7 5 2 3 2 4 1 cacta 1 50 a 2 11 22 ab 4 1 2 2 1 aaab 5 1 2 3 2 1 aaaaa 6 1 10 2 9 3 8 azzfdb 7 1 2 3 4 1 1 2 abababb
输出#1
YES YES YES NO YES YES NO
说明/提示
The first test case corresponds to the sample described in the statement.
In the second test case we can choose the number 50 and the letter a.
In the third test case we can choose the number 11 and the letter a, after that a=[a,22]. Then we choose the number 22 and the letter b and get a=[a,b].
In the fifth test case we can change all numbers one by one to the letter a.
第一个测试用例对应题目描述中的样例。
在第二个测试用例中,我们可以选择数字 50 和字母 a。
在第三个测试用例中,我们可以先选择数字 11 和字母 a,之后得到 a=[a,22];然后选择数字 22 和字母 b,最终得到 a=[a,b]。
在第五个测试用例中,我们可以逐个将所有数字替换为字母 a。
输入解题思路,AI测评打分。不知道怎么写?