QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 1024 MB Points totaux : 100

#8651. 乒乓球

Statistiques

JOI 王国举办了一场乒乓球比赛。共有 $N$ 只海狸参加了比赛,编号为 $1$ 到 $N$,比赛采用循环赛制。

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

  • 比赛中没有平局。
  • 恰好有 $M$ 种选择 3 只海狸的方法,使得它们构成“三难困境”(trilemma)。注意,3 只海狸 $i, j, k$ ($1 \le i < j < k \le N$) 构成“三难困境”当且仅当满足以下 2 个条件中的恰好一个:
    • 海狸 $i$ 胜过海狸 $j$,海狸 $j$ 胜过海狸 $k$,且海狸 $k$ 胜过海狸 $i$。
    • 海狸 $i$ 胜过海狸 $k$,海狸 $k$ 胜过海狸 $j$,且海狸 $j$ 胜过海狸 $i$。

你不知道 Bitaro 提供的信息是否正确,因此你决定思考是否存在符合 Bitaro 所述信息的比赛结果。

请编写一个程序,给定 Bitaro 提供的信息,判断是否存在符合该信息的比赛结果,如果存在,则找出其中一种比赛结果。

输入格式

测试用例包含 $Q$ 个场景,编号为 $1$ 到 $Q$。每个场景指定以下值:

  • 参加比赛的海狸数量 $N$。
  • 构成“三难困境”的 3 只海狸的选择方式数量 $M$。

输入数据的格式如下:

$Q$ (场景 1 的输入) (场景 2 的输入) ... (场景 $Q$ 的输入)

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

$N \ M$

输出格式

按顺序输出场景 $1, 2, \dots, Q$ 的答案。

对于某个场景,如果存在符合信息的比赛结果,请按以下格式输出:

Yes $S_2$ $S_3$ ... $S_N$

其中 $S_i$ ($2 \le i \le N$) 是一个长度为 $i-1$ 的字符串,由字符 ‘0’ 或 ‘1’ 组成。$S_i$ 的第 $j$ 个字符为 ‘0’ 表示海狸 $i$ 被海狸 $j$ 击败,第 $j$ 个字符为 ‘1’ 表示海狸 $i$ 胜过海狸 $j$。如果存在多种结果,你可以输出其中任意一种。

对于某个场景,如果不存在符合信息的比赛结果,请输出:

No

数据范围

  • $1 \le Q$
  • $3 \le N \le 5\,000$
  • $0 \le M \le \frac{1}{6}N(N - 1)(N - 2)$
  • 所有场景的 $N$ 之和小于或等于 $5\,000$
  • 给定值均为整数

子任务

  1. (5 分) $M \le N - 2$
  2. (4 分) 所有场景的 $N$ 之和小于或等于 $7$
  3. (23 分) 所有场景的 $N$ 之和小于或等于 $20$
  4. (30 分) 所有场景的 $N$ 之和小于或等于 $150$
  5. (15 分) 所有场景的 $N$ 之和小于或等于 $600$
  6. (23 分) 无附加限制

样例

输入格式 1

2
3 1
4 4

输出格式 1

Yes
0
10
No

说明

共有 $Q = 2$ 个场景。在样例输出中场景 1 的结果里,海狸 1 胜过海狸 2,海狸 2 胜过海狸 3,海狸 3 胜过海狸 1。因此,海狸 1, 2, 3 构成三难困境。没有其他选择 3 只海狸的方法,因此恰好有 1 种选择 3 只海狸构成三难困境的方法。对应场景 1 的另一种输出如下:

Yes
1
01

在场景 2 中,不存在任何符合信息的比赛结果。因此,输出 No。该样例输入满足子任务 2, 3, 4, 5, 6 的限制。

输入格式 2

1
5 3

输出格式 2

Yes
0
11
001
0101

说明

在样例输出中场景 1 的结果里,海狸 1 胜过海狸 4,海狸 4 胜过海狸 3,海狸 3 胜过海狸 1。因此,海狸 1, 3, 4 构成三难困境。还有另外两种选择 3 只海狸构成三难困境的方法:选择海狸 2, 3, 4 和选择海狸 3, 4, 5。因此,恰好有 3 种选择 3 只海狸构成三难困境的方法。该样例输入满足所有子任务的限制。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.