UOJ Logo Universal Online Judge

UOJ

#882. 【JOISC2024】乒乓球

附件下载 统计

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

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

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

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

输入格式

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

  • 参加比赛的海狸数量 N
  • 选择 3 只形成“三元悖论”的海狸的方式数量 M

输入数据的格式如下。

  • Q

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

  • N M

输出格式

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

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

  • Yes
  • S2
  • S3
  • ...
  • SN

这里,Si2iN)是一个字符为 '0' 或 '1',长度为 i1 的字符串。Si 的第 j 个字符为 '0' 表示海狸 i 被海狸 j 打败,为 '1' 表示海狸 i 打败了海狸 j。如果存在多个结果,可以输出任何一个。

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

样例解释 1

Q=2 个场景。

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

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

Yes
1
01

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

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

样例解释 2

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

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

约束条件

  • 1Q
  • 3N5000
  • 0M16N(N1)(N2)
  • Q 个场景中 N 的总和不超过 5000
  • 给定值均为整数。

子任务

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