Đường đi dài nhất
Đề bài
Mô tả
Cho đồ thị có hướng không có chu trình (DAG). Mỗi cạnh của đồ thị được gán trọng số là một số nguyên. Hãy đếm số lượng đường đi từ đỉnh đến đỉnh . Trong các đường đi đó, đường đi dài nhất có giá trị bằng bao nhiêu.
Độ dài của một đường đi là tổng trọng số các cung trên đường đi đó (có thể âm). Hai đường đi được coi là khác nhau nếu dãy cung của chúng khác nhau.
Yêu cầu: Tính số lượng đường đi từ đến (theo modulo ) và tìm độ dài đường đi dài nhất từ đến .
Dữ liệu vào
- Dòng đầu tiên ghi hai số nguyên dương (, ) lần lượt là số đỉnh và số cạnh của đồ thị. Các đỉnh đánh số từ đến .
- Dòng thứ hai ghi hai số nguyên dương (, ).
- dòng tiếp theo, mỗi dòng ghi số nguyên (, , ) thể hiện có một cung một chiều nối từ đỉnh đến đỉnh có trọng số là .
Dữ liệu đảm bảo rằng đồ thị không có chu trình và không có hai cung nào cùng nối từ đến .
Dữ liệu ra
- Dòng thứ nhất ghi số lượng đường đi khác nhau có thể có từ đến . Vì con số này có thể rất lớn nên chỉ cần lấy phần dư của nó khi chia cho (phần dư này có thể bằng dù đường đi vẫn tồn tại).
- Dòng thứ hai ghi độ dài của đường đi dài nhất từ đến .
Nếu không tồn tại đường đi nào từ đến thì chỉ ghi một dòng NO PATH.
Ràng buộc
- , .
- , .
- , , .
- Đồ thị không có chu trình, không có hai cung trùng nhau.
Subtasks
- Subtask 1 ( số điểm): .
- Subtask 2 ( số điểm): .
- Subtask 3 ( số điểm): không có ràng buộc gì thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 6 1 5 1 4 5 4 5 -4 1 2 1 2 3 2 3 5 3 1 3 -7 |
3 6 |
Có đường đi: (độ dài ), (độ dài ), (độ dài ). Dài nhất là . |
| 3 2 1 3 3 1 4 2 3 1 |
NO PATH | Ví dụ bổ sung (không có trong đề gốc). Không có cung nào đi ra từ đỉnh . |
| 4 4 1 4 1 2 -5 2 4 -1 3 2 10 1 4 -7 |
2 -6 |
Ví dụ bổ sung (không có trong đề gốc). Hai đường đi (độ dài ) và (độ dài ). Đường đi không xuất phát từ nên không được tính, và đáp án có thể âm. |
Bình luận