QOJ.ac

QOJ

时间限制: 3 s 内存限制: 512 MB 总分: 100

#16305. Danh sách các con đường

统计

Bajtysia và Bajteusz là những nhà du hành nổi tiếng, những người đã đặt chân đến hầu hết mọi ngóc ngách của Bajtocja. Vùng đất này bao gồm $n$ thành phố, được đánh số từ $1$ đến $n$, kết nối với nhau bởi một mạng lưới các con đường một chiều. Tuy nhiên, họ đã cảm thấy nhàm chán với các phương thức di chuyển truyền thống – họ đã đi đến tất cả những nơi có thể đến được.

Gần đây, Bajtysia sở hữu một cổ vật ma thuật – Sổ Đăng ký Đường bộ (Road Register). Nó cho phép tạo ra các con đường một chiều mới giữa các thành phố. Tuy nhiên, có một điều kiện. Phép thuật của cuốn sổ rất thất thường và chỉ cho phép tạo một con đường giữa hai thành phố nếu hiện tại không thể đi từ thành phố thứ nhất đến thành phố thứ hai bằng mạng lưới đường hiện có (nghĩa là không có chuỗi các con đường dẫn từ thành phố thứ nhất đến thành phố thứ hai; tuy nhiên, có thể tồn tại một chuỗi các con đường dẫn từ thành phố thứ hai đến thành phố thứ nhất). Việc cố gắng tạo một con đường giữa hai thành phố đã có đường kết nối sẽ thất bại và phá hủy cuốn sổ.

Đối với Bajtysia và Bajteusz, đây là một thử thách tuyệt vời! Họ ngay lập tức quyết định rằng họ muốn tạo ra càng nhiều con đường mới càng tốt.

Thật không may, Bajtysia và Bajteusz quá bận rộn với việc lên kế hoạch cho chuyến thám hiểm tiếp theo nên không thể tự mình giải quyết vấn đề này. Hãy giúp họ lập kế hoạch tạo từng con đường một sao cho tổng số lượng con đường là lớn nhất có thể.

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào chứa hai số nguyên $n$ và $m$ ($1 \le n \le 1500$, $0 \le m \le n(n-1)$), lần lượt là số lượng thành phố và số lượng con đường một chiều ở Bajtocja. $m$ dòng tiếp theo chứa mô tả các con đường. Dòng thứ $i$ trong số đó (với $1 \le i \le m$) chứa hai số nguyên $a_i, b_i$ ($1 \le a_i, b_i \le n, a_i \neq b_i$), biểu thị rằng có một con đường một chiều từ thành phố $a_i$ đến thành phố $b_i$. Các con đường một chiều được mô tả không bị lặp lại.

Dữ liệu ra

Ở dòng đầu tiên của dữ liệu ra, in ra một số nguyên không âm $k$ đại diện cho số lượng tối đa các con đường một chiều có thể được tạo ra sao cho mỗi con đường tiếp theo kết nối một cặp thành phố mà hiện tại không thể đi lại giữa chúng. $k$ dòng tiếp theo mô tả các con đường cần được tạo theo thứ tự. Dòng thứ $i$ trong số đó (với $1 \le i \le k$) chứa hai số nguyên $c_i, d_i$ đại diện cho hai thành phố mà con đường thứ $i$ sẽ được tạo giữa chúng. Tại thời điểm tạo con đường này, không được phép có đường đi từ thành phố $c_i$ đến thành phố $d_i$ bằng các con đường hiện có (bao gồm cả các con đường ban đầu và các con đường đã được tạo trước đó). Nếu có nhiều lời giải, hãy in ra bất kỳ lời giải nào.

Nhiệm vụ con

Nhiệm vụ con Giới hạn Điểm
1 $n \le 5$ 6
2 $m = 0$ 18
3 $n \le 500$ và $a_i < b_i$ với mọi $1 \le i \le m$ 20
4 $n \le 50$ 18
5 $n \le 500$ 28
6 Không có giới hạn bổ sung 10

Nếu chỉ dòng đầu tiên trong câu trả lời của bạn là chính xác, lời giải của bạn sẽ nhận được 50% số điểm cho bài kiểm tra đó. Bạn không cần phải in các dòng tiếp theo để nhận được số điểm này.

Ví dụ

Dữ liệu vào 1

7 8
1 2
2 3
3 1
3 4
4 5
5 4
5 6
6 7

Dữ liệu ra 1

3
4 1
6 4
7 6

Dữ liệu vào 2

3 0

Dữ liệu ra 2

5
3 1
3 2
2 1
2 3
1 2

Ghi chú

Trong ví dụ đầu tiên, mạng lưới đường hiện có ban đầu được minh họa dưới đây:

Không thể đi từ thành phố 4 đến thành phố 1, vì vậy một con đường như vậy có thể được thêm vào. Sau khi thêm các con đường từ thành phố 6 đến thành phố 4 và từ thành phố 7 đến thành phố 6, chúng ta thu được một mạng lưới mà tại đó có thể đi lại giữa mọi cặp thành phố. Không thể thêm bất kỳ cạnh nào nữa.

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.