trang chủ / đề bài / voi13_tours

Hành trình du lịch

Đề bài

Mô tả

Công ty du lịch X có dự án tổ chức các hành trình du lịch trong vùng lãnh thổ gồm n điểm du lịch trọng điểm, được đánh số từ 1 tới n. Hệ thống giao thông trong vùng gồm m tuyến đường một chiều khác nhau, tuyến đường thứ j (j=1,2,3,…,m) cho phép đi từ địa điểm uj đến địa điểm vj với chi phí đi lại là một số nguyên dương c(uj,vj). Vấn đề đặt ra cho công ty là xây dựng các hành trình du lịch cho mỗi điểm du lịch. Một hành trình du lịch cho địa điểm du lịch i phải được xây dựng sao cho xuất phát từ địa điểm i đi qua một số địa điểm khác rồi quay lại địa điểm xuất phát i với tổng chi phí (được tính như là tổng chi phí của các tuyến đường mà hành trình đi qua) nhỏ nhất.

Dữ liệu vào

  • Dòng đầu tiên là số T: số lượng bộ dữ liệu. Tiếp đến là T nhóm dòng, mỗi nhóm cho thông tin về một bộ dữ liệu theo khuôn dạng sau:
  • Dòng thứ nhất chứa 2 số nguyên dương n, m.
  • Dòng thứ j trong số m dòng tiếp theo chứa ba số nguyên dương uj, vj, c(uj,vj) cho biết thông tin về tuyến đường thứ j. Giả thiết là uj≠vj; c(uj,vj)<106; j=1,2,…,m.

Dữ liệu ra

Gồm T nhóm dòng tương ứng với T bộ dữ liệu vào, mỗi nhóm dòng gồm n dòng, dòng thứ i ghi chi phí của hành trình du lịch cho địa điểm i.

Quy ước: ghi số −1 trên dòng i nếu không tìm được hành trình du lịch cho địa điểm i thỏa mãn yêu cầu đặt ra.

Ràng buộc

  • 1≤T≤10; trong một test, tổng các n không vượt quá 1000 và tổng các m không vượt quá 105.
  • 2≤n≤1000; 1≤m≤105; không có hai tuyến đường cùng đi từ u đến v.
  • 1≤uj,vj≤n, uj≠vj; 1≤c(uj,vj)<106.

Subtasks

  • Subtask 1 (30% số test): n≤20.
  • Subtask 2 (30% số test): n≤100, m≤104.
  • Subtask 3 (40% số test): n≤1000, m≤105.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
1
6 8
1 2 4
2 4 2
4 3 3
3 1 4
4 1 5
3 5 5
5 3 1
5 6 7
11
11
6
11
6
-1
Địa điểm 1: 1→2→4→1 chi phí 4+2+5=11. Địa điểm 3: 3→5→3 chi phí 5+1=6. Từ địa điểm 6 không có tuyến đường nào đi ra.
1
4 5
1 2 1
2 3 1
3 1 1
1 3 5
3 4 2
3
3
3
-1
Hành trình 1→2→3→1 (chi phí 3) rẻ hơn 1→3→1 (chi phí 6) dù đi qua nhiều tuyến đường hơn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0