#L4159. 「JOISC 2024 Day4」乒乓

「JOISC 2024 Day4」乒乓

题目描述

题目译自 JOISC 2024 Day4 T3 「卓球 / Table Tennis」

JOI 国正在举行乒乓球比赛。有 NN 只河狸参加,编号为 11NN。此比赛为单循环赛制。

你从 Bitaro 那里得知了比赛结果。

比赛没有平局。 有恰好 MM 种选择三只河狸的方式出现了三方牵制。注意三只河狸 i,j,ki,j,k (1i<j<kN)(1\le i<j<k\le N) 出现三方牵制,当且仅当如下两个条件中的恰好一个被满足:

河狸 ii 击败河狸 jj,河狸 jj 击败河狸 kk,河狸 kk 击败河狸 ii

河狸 ii 击败河狸 kk,河狸 kk 击败河狸 jj,河狸 jj 击败河狸 ii

你不知道从 Bitaro 那里获得的信息是否正确,所以你决定找出是否存在一种比赛结果符合从 Bitaro 那里获得的信息。

给出从 Bitaro 那里获得的信息,写一个程序判断是否存在比赛结果符合这个信息,如果存在,找出一种比赛结果。

输入格式

第一行一个整数 QQ,表示场景数。

对于每个场景,一行两个整数 N,MN,M,分别表示河狸数和三方牵制数。

输出格式

对于每个场景,如果存在比赛结果满足信息,先输出一行 Yes。接下来输出 N1N-1 行。第 ii 行输出一个长度为 ii 的且仅包含 0011 的字符串 SiS_i。如果 SiS_i 的第 jj 个字符为 00,则表示河狸 i+1i+1 输给了河狸 jj,如果为 11,则表示河狸 i+1i+1 赢了河狸 jj。如果有多种满足条件的结果,输出任意一个均可。

如果不存在比赛结果满足信息,输出一行 No。

样例1:

2
3 1
4 4
Yes
0
10
No

Q=2Q=2 个场景。

在第一个场景的样例输出中,河狸 11 赢了河狸 22,河狸 22 赢了河狸 33,河狸 33 赢了河狸 11。因此,河狸 1,2,31,2,3 出现了三方牵制。没有其他选择三只河狸的方式了,所以有恰好一种方式选择三只河狸会出现三方牵制。

如下是针对场景一的另一个满足条件的输出。

Yes
1
01

场景二中,没有任何比赛结果满足给出信息。因此输出 No。

这组样例满足子任务 2,3,4,5,62,3,4,5,6 的限制。

样例2:

1
5 3
Yes
0
11
001
0101

在第一个场景的样例输出中,河狸 11 赢了河狸 44,河狸 44 赢了河狸 33,河狸 33 赢了河狸 11。因此,河狸 1,3,41,3,4 出现了三方牵制。还有两种其他方式会出现三方牵制:选择河狸 2,3,42,3,4 和选择河狸 3,4,53,4,5。所以有恰好三种方式选择三只河狸会出现三方牵制。

这组样例满足所有子任务的限制。

数据规模与约定

1Q1\le Q

3N5,0003\le N\le 5,000

0M16N(N1)(N2)0\le M\le \frac{1}{6}N(N-1)(N-2)

QQ 个场景中所有 NN 之和小于等于 5,0005,000

详细子任务附加限制及分值如下表所示。

子任务编号子任务编号 附加限制附加限制 分值分值
11 MN2M\le N-2 55
22 QQ 个场景中所有 NN 之和小于等于 77 44
33 QQ 个场景中所有 NN 之和小于等于 2020 2323
44 QQ 个场景中所有 NN 之和小于等于 150150 3030
55 QQ 个场景中所有 NN 之和小于等于 600600 1515
66 无附加限制 2323