trang chủ / đề bài / gr07_portal

Cổng dịch chuyển

Đề bài

Mô tả

Có n thành phố đánh số từ 1 đến n và m con đường hai chiều; con đường thứ i nối ui với vi và đi hết mất wi phút. Có thể có đường nối một thành phố với chính nó và nhiều đường nối cùng một cặp thành phố.

Ngoài ra còn có k mạng dịch chuyển. Mạng thứ j gồm sj thành phố khác nhau và có thời gian dịch chuyển cj: từ bất kỳ thành phố nào của mạng, bạn có thể dịch chuyển tới bất kỳ thành phố nào khác của cùng mạng đó, mất cj phút. Một thành phố có thể thuộc nhiều mạng.

Xuất phát từ thành phố 1, hãy tính thời gian ít nhất để tới từng thành phố.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên n, m, k.
  • m dòng tiếp theo, dòng thứ i chứa ba số nguyên ui,vi,wi.
  • k dòng tiếp theo, dòng thứ j bắt đầu bằng hai số nguyên cj, sj, sau đó là sj số nguyên: các thành phố thuộc mạng j.

Dữ liệu ra

In ra n số trên một dòng, số thứ v là thời gian ít nhất để tới thành phố v, hoặc −1 nếu không tới được.

Ràng buộc

  • 1≤n≤3·104
  • 0≤m≤6·104
  • 0≤k≤3·104
  • 1≤sj và s1+s2+…+sk≤105
  • 1≤ui,vi≤n
  • 1≤wi,cj≤109

Ví dụ

Input Output Giải thích
5 4 1
1 2 10
2 3 10
3 4 10
4 5 10
3 2 2 5
0 10 20 23 13 Tới thành phố 2 mất 10, dịch chuyển sang 5 mất thêm 3, rồi đi đường 5→4 thêm 10.
6 2 2
1 2 4
3 4 1
7 2 2 3
2 2 3 5
0 4 11 12 13 -1 Thành phố 3 thuộc cả hai mạng: 1→2 (4), dịch chuyển 2→3 (7), dịch chuyển 3→5 (2). Thành phố 6 không tới được.

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