luogu#P10441. [JOISC 2024 Day4] 乒乓球

[JOISC 2024 Day4] 乒乓球

题目描述

在 JOI 王国举办了一场乒乓球比赛。 NN 只编号从 11NN 的海狸参加了这场比赛,并进行了一场循环赛。

你从 Bitaro 那里得知了关于比赛结果的以下信息。

  • 没有平局比赛。
  • 正好有 MM 种选择 33 只海狸形成“三元悖论”。请注意,只有当以下两个条件之一恰好满足时,33 只海狸 i,j,ki, j, k1i<j<kN1 \leq i < j < k \leq N)才形成“三元悖论”。
    • 海狸 ii 击败了海狸 jj,海狸 jj 击败了海狸 kk,海狸 kk 又击败了海狸 ii
    • 海狸 ii 击败了海狸 kk,海狸 kk 击败了海狸 jj,海狸 jj 又击败了海狸 ii

你不确定 Bitaro 提供的信息是否正确,所以你决定思考是否有任何与 Bitaro 提供的信息相符的比赛结果。编写一个程序,根据 Bitaro 提供的信息判断是否有任何比赛结果与信息相符,如果有,找出其中任意一种比赛结果。

输入格式

一个测试案例包括 QQ 个场景,编号从 11QQ。每个场景指定以下数值。

  • 参加比赛的海狸数量 NN
  • 选择 33 只形成“三元悖论”的海狸的方式数量 MM

输入数据的格式如下。

  • QQ

每个场景的输入数据格式如下。

  • NN MM

输出格式

对应各个场景,按照以下顺序将答案写入标准输出。

在某些场景中,如果有任何与信息相符的比赛结果,请按照以下方式输出。

  • Yes
  • S2S_2
  • S3S_3
  • ...
  • SNS_N

这里,SiS_i2iN2 \leq i \leq N)是一个字符为 '0' 或 '1',长度为 i1i-1 的字符串。SiS_i 的第 jj 个字符为 '0' 表示海狸 ii 被海狸 jj 打败,为 '1' 表示海狸 ii 打败了海狸 jj。如果存在多个结果,可以输出任何一个。

在某些场景中,如果没有任何与信息相符的比赛结果,请输出 No。

2
3 1
4 4
Yes
0
10
No
1
5 3
Yes
0
11
001
0101

提示

样例解释 1

Q=2Q = 2 个场景。

在这个示例输出中,场景 11 的结果是,海狸 11 打败了海狸 22,海狸 22 打败了海狸 33,海狸 33 打败了海狸 11。因此,海狸 112233 形成了“三元悖论”。没有其他方式选择 33 只海狸,所以有确切地 11 种方式选择 33 只形成“三元悖论”的海狸。

对应场景 11 的另一个输出如下。

Yes
1
01

在场景 22 中,没有任何与信息相符的比赛结果。因此,输出 No。

这个示例输入满足子任务 2,3,4,5,62,3,4,5,6 的约束条件。

样例解释 2

在这个示例输出中,场景 11 的结果是,海狸 11 打败了海狸 44,海狸 44 打败了海狸 33,海狸 33 打败了海狸 11。因此,海狸 1,3,41,3,4 形成了“三元悖论”。还有两种其他方式选择 33 只形成“三元悖论”的海狸:选择海狸 2,3,42,3,4 和选择海狸 3,4,53,4,5。因此,有确切地 33 种方式选择 33 只形成“三元悖论”的海狸。

这个示例输入满足所有子任务的约束条件。

约束条件

  • 1Q1 \leq Q
  • 3N50003 \leq N \leq 5000
  • 0M16N(N1)(N2)0 \leq M \leq \frac{1}{6} N(N - 1)(N - 2)
  • QQ 个场景中 NN 的总和不超过 5000
  • 给定值均为整数。

子任务

  1. (5 分) MN2M \leq N - 2
  2. (4 分) QQ 个场景中 NN 的总和不超过 7。
  3. (23 分) QQ 个场景中 NN 的总和不超过 20。
  4. (30 分) QQ 个场景中 NN 的总和不超过 150。
  5. (15 分) QQ 个场景中 NN 的总和不超过 600。
  6. (23 分) 无额外约束。