QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100

#960. Vượt quá giới hạn đầu ra

Statistics

Chúng ta đều biết rằng $\binom{n}{k} = \frac{n \cdot (n-1) \cdot \dots \cdot (n-k+2) \cdot (n-k+1)}{1 \cdot 2 \cdot \dots \cdot (k-1) \cdot k}$ là một số nguyên với mọi $0 \le k \le n$. Nhưng sẽ thật tuyệt nếu chúng ta có thể chứng minh điều đó bằng cách cung cấp một cặp ghép giữa các thừa số ở tử số và mẫu số, phải không?

Hãy xây dựng một đồ thị hai phía với $k$ đỉnh ở mỗi bên. Đỉnh thứ $i$ ở phần bên trái tương ứng với thừa số $(n + 1 - i)$ từ tử số và đỉnh thứ $j$ ở phần bên phải tương ứng với thừa số $j$ từ mẫu số. Có một cạnh nối $i - j$ nếu và chỉ nếu $j$ chia hết $(n + 1 - i)$. Số $k$ được gọi là "có thể chứng minh" (provable) đối với $n$ nếu tồn tại một cặp ghép hoàn hảo trong đồ thị hai phía này.

Cho $n$, hãy kiểm tra xem $k$ có "có thể chứng minh" hay không với mỗi $k$ thỏa mãn $0 \le k \le n$.

Dữ liệu vào

Dòng duy nhất chứa một số nguyên $n$ ($0 \le n \le 10^{18}$).

Dữ liệu ra

In ra một chuỗi có độ dài $(n + 1)$ bao gồm các ký tự '0' và '1', trong đó ký tự thứ $(k + 1)$ phải là '1' nếu và chỉ nếu $k$ là "có thể chứng minh" đối với $n$.

Bạn nghĩ rằng điều này sẽ dẫn đến lỗi "Output Limit Exceeded"? Hmmm... Được thôi. Hãy nén chuỗi đó lại.

Cho $s_0 = \text{"0"}$ và $s_1 = \text{"1"}$. Bạn có thể định nghĩa $s_2, s_3, \dots, s_t$. Chuỗi $s_i$ phải là sự ghép nối của một vài chuỗi đã được định nghĩa trước đó. Một cách hình thức, $\forall i(2 \le i \le t) : s_i = s_{j_1} + s_{j_2} + \dots + s_{j_{k_i}}$, ở đây $1 \le k_i$, $\forall r(1 \le r \le k_i) : j_r < i$. Chuỗi $s_t$ phải là đáp án của bài toán.

Ở dòng đầu tiên, in ra một số nguyên $t$ ($2 \le t \le 500$).

Trong $t - 1$ dòng tiếp theo, in ra các mô tả của $s_i$. Mỗi mô tả phải có dạng $k_i \ j_1 \ j_2 \ \dots \ j_{k_i}$, với $1 \le k_i$ và $0 \le j_r < i$.

Tổng độ dài của tất cả các mô tả không được vượt quá $10\,000$: $\sum_{i=2}^t k_i \le 10\,000$.

Chúng ta có thể chứng minh rằng với mọi bộ test hợp lệ, luôn tồn tại một cách xây dựng chuỗi đáp án thỏa mãn tất cả các giới hạn trên. Nếu có nhiều cách thực hiện, hãy in ra bất kỳ cách nào trong số đó. Lưu ý rằng bạn không cần phải tối thiểu hóa $t$ hoặc tổng độ dài của tất cả các mô tả.

Ví dụ

Dữ liệu vào 1

1

Dữ liệu ra 1

2
2 1 1

Dữ liệu vào 2

0

Dữ liệu ra 2

2
1 1

Dữ liệu vào 3

7

Dữ liệu ra 3

4
2 1 1
4 1 2 0 0
3 3 1 2

Ghi chú

Trong ví dụ thứ ba: $s_2 = s_1 + s_1 = \text{"1"} + \text{"1"} = \text{"11"}$, $s_3 = s_1 + s_2 + s_0 + s_0 = \text{"1"} + \text{"11"} + \text{"0"} + \text{"0"} = \text{"11100"}$, $s_4 = s_3 + s_1 + s_2 = \text{"11100"} + \text{"1"} + \text{"11"} = \text{"11100111"}$.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#320EditorialOpen题解jiangly2025-12-14 07:04:34View

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.