注意:本场比赛题目满分均为 100 分,提交显示 Accepted
不一定代表通过。
注意:该题目数据范围有更新。
To B or not to B, that is a question.
选 B 还是不选 B,这是一个问题。
小 M 的假期即将结束,可他的作业仍然像一座山一样,可以知道他要写 T 份作业。
每份作业恰好有 n 道选择题(题号为 1,2,\dots,n),并且每道选择题的答案都是从 A
,B
,C
,D
四个选项中选择一个或者两个。对于一道题,如果选择一个,答案定义为所选择的选项构成的字符串;如果选择两个,答案定义为所选择的选项按照 A
,B
,C
,D
顺序排列的字符串。
由于小 M 太菜,他的 T 份作业都向 WalkerV 抢借来了作业答案。一份作业对应一份作业答案,它是一个字符串 S,长度为 l,由每道题的答案按照题号顺序不加分隔符排列而成。
小 M 立即意识到,对于某一份作业答案,有可能有两份及以上各有 n 道题的不同的作业都能对应它,也有可能没有任何一份恰好有 n 道题的作业对应它。作业不同指存在至少一道题目,其中至少有一个选项在一份作业被选择,而在另一份作业中没有被选择。
由于他还要忙着赶作业,他希望你能帮助他判断对于给定的作业答案 S 与题目数量 n,是否有两份及以上不同的作业或者没有任何一份符合上述要求的作业能对应它。
本题有 T 组数据。每组数据给定正整数 n 与长度为 l 的字符串 S(保证只含有 A
,B
,C
,D
四种字符)。现将 S 划分为 n 段长度为 1 或 2 的子串,每个子串都满足字符按照字典序(即 A
,B
,C
,D
的顺序)递增。请你判断划分方式是否存在、是否唯一。
本题有多组数据。
本题输入、输出规模较大,请使用较快的输入输出方式。
第一行,一个正整数 T,表示数据组数。
接下来 2T 行中,每两行为一组数据,其中第一行为题目数量 n 与答案字符串的长度 l;第二行为答案字符串 S。
输出共 T 行。
对于每组数据,如果有两份及以上作业对应 S,输出一行 Multi Answer
;如果有且仅有一份作业对应 S,输出一行 One Answer
;否则输出一行 No Answer
。
3 6 7 ADACABC 7 7 DDDDDDD 2 10 BDABCABCDC
Multi Answer One Answer No Answer
5 5 5 BCADA 2 3 CBC 5 10 DACBDABACD 8 8 ABCABCDD 6 7 ABDADBD
One Answer One Answer No Answer One Answer Multi Answer
记 \Sigma l 为各组数据的 l 的和。
对于 5\% 的数据,T \leq 3,l \leq 12。
对于 20\% 的数据,T \leq 10^3,l \leq 8。
对于 45\% 的数据,l \leq 2 \times 10^3,\Sigma l \leq 2 \times 10^4。
另有 10\% 的数据,保证 l=2n。
另有 15\% 的数据,保证 S 中只出现 A
或 B
。
对于所有数据,1 \leq n \leq l \leq 2 \times 10^5,T \leq 10^3,\Sigma l \leq 2 \times 10^6。
时间限制 | 1 秒 |
内存限制 | 128 MB |