Co đồ thị SCC và Đường đi dài nhất trên đồ thị rút gọn DAG
Cho một đồ thị có hướng gồm N đỉnh và M cạnh. Mỗi đỉnh u có chứa một lượng tài nguyên là số nguyên Vu. Khi bạn đi qua một đỉnh, bạn có thể thu thập toàn bộ tài nguyên tại đỉnh đó…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: tarjan scc, topological sort, dag dp.
Nội dung đề bài
Mục tiêu kiến thức
- Nắm vững kỹ thuật Co đồ thị (Graph Condensation): Biến đổi đồ thị có hướng có chu trình thành một đồ thị có hướng không chu trình (DAG) bằng cách co mỗi thành phần liên thông mạnh (SCC) thành một siêu đỉnh.
- Trọng số của mỗi siêu đỉnh bằng tổng giá trị của các đỉnh con bên trong nó.
- Áp dụng quy hoạch động trên DAG (sắp xếp Tô-pô) để tìm đường đi có tổng trọng số lớn nhất xuất phát từ bất kỳ siêu đỉnh nào.
Mô tả bài toán
Cho một đồ thị có hướng gồm N đỉnh và M cạnh. Mỗi đỉnh u có chứa một lượng tài nguyên là số nguyên Vu. Khi bạn đi qua một đỉnh, bạn có thể thu thập toàn bộ tài nguyên tại đỉnh đó (mỗi đỉnh chỉ được thu thập tối đa một lần dù đi qua nhiều lần). Bạn có thể xuất phát tại bất kỳ đỉnh nào và kết thúc tại bất kỳ đỉnh nào. Hãy tìm lượng tài nguyên lớn nhất có thể thu thập được.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng 1: Gồm 2 số nguyên N, M (1 ≤ N ≤ 105, 0 ≤ M ≤ 2 · 105).
- Dòng 2: N số nguyên V1, V2, …, VN (0 ≤ Vi ≤ 109).
- M dòng tiếp theo: Mỗi dòng gồm 2 số nguyên u, v mô tả cạnh có hướng từ u đến v (1 ≤ u, v ≤ N).
Output
- In ra một số nguyên duy nhất là lượng tài nguyên tối đa thu thập được.
Ràng buộc
- 1 ≤ N ≤ 105, 0 ≤ M ≤ 2 · 105.
- Thời gian: 1000ms. Bộ nhớ: 256MB.
Ví dụ 1
Input
4 4
4 2 5 2
1 2
2 3
3 1
2 4Output
13
*Giải thích: Các đỉnh 1, 2, 3 tạo thành một chu trình SCC với tổng tài nguyên 4 + 2 + 5 = 11. Từ đỉnh 2 có cạnh sang đỉnh 4 (tài nguyên 2). Lộ trình tối ưu: đi vòng hết chu trình {1, 2, 3} lấy 11 tài nguyên rồi sang đỉnh 4 lấy thêm 2 $\implies$ tổng = 13.*Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
