trang chủ / đề bài / voi19_wout

Tập thể dục

Đề bài

Mô tả

Một thành phố có N địa điểm được đánh số từ 1 đến N, có M đoạn đường hai chiều, đoạn đường thứ i (1≤i≤M) nối hai địa điểm ui, vi (1≤ui,vi≤N) với độ dài wi.

Nhóm bạn thân của Nam có K người đều sống trong thành phố, Nam được đánh chỉ số 1 và các bạn của Nam được đánh chỉ số lần lượt từ 2 đến K. Ngày chủ nhật tới được nghỉ học, mỗi bạn trong nhóm sẽ chạy bộ đến công viên ưa thích của mỗi người để tập thể dục. Người thứ i (1≤i≤K) có nhà nằm ở địa điểm ai (1≤ai≤N) và chủ nhật sẽ tập thể dục ở công viên ưa thích nằm ở địa điểm bi (1≤bi≤N). Để tiết kiệm thời gian, mỗi người sẽ xuất phát từ nhà đi tới công viên theo một đường đi có độ dài ngắn nhất.

Một đường đi gồm t địa điểm xuất phát từ địa điểm u và kết thúc tại địa điểm v là một chuỗi liên tiếp các địa điểm u=c1,c2,…,ct−1,ct=v sao cho có đoạn đường nối trực tiếp giữa 2 địa điểm liên tiếp cj và cj+1 (1≤j<t) trong chuỗi. Độ dài của một đường đi là tổng độ dài của các đoạn đường nối trực tiếp 2 địa điểm liên tiếp trên đường đi đó.

Để việc tập thể dục trở nên vui vẻ hơn, Nam mong muốn có thể được đi chung với các bạn thân của mình trên đường đi tập thể dục. Nam được gọi là đi chung với một người bạn trên đoạn đường nối trực tiếp hai địa điểm u và v khi và chỉ khi đoạn đường này đều nằm trên đường đi tập thể dục của hai người và cả hai người đều đi đến địa điểm u tại cùng một thời điểm trước khi cùng nhau đi đến địa điểm v. Gọi S là tổng độ dài của các đoạn đường mà Nam đi chung với ít nhất một người bạn thân của mình. Nam muốn giá trị của S là càng lớn càng tốt.

Chủ nhật, theo dự định, mỗi người đều sẽ xuất phát đi tập thể dục vào lúc 7 giờ sáng. Để có thể đạt được S là lớn nhất, Nam cố gắng thuyết phục mỗi người bạn thân của mình đi theo một đường đi ngắn nhất và xuất phát tại một thời điểm nào đó theo kế hoạch của Nam. Do đi theo đường đi có độ dài ngắn nhất nào cũng không làm thay đổi khoảng thời gian di chuyển trên đường nên tất cả đều đồng ý đi theo các lộ trình đường đi ngắn nhất mà Nam đề xuất. Tuy nhiên, việc thay đổi giờ xuất phát, trước hoặc sau 7 giờ sáng, có thể làm ảnh hưởng tới các kế hoạch cá nhân khác nên Nam chỉ thuyết phục được việc thay đổi thời gian xuất phát đối với những ai dễ tính mà thôi. Do đã quen với việc thức dậy sớm và xuất phát lúc 7 giờ sáng, Nam không thay đổi thời điểm xuất phát của mình.

Yêu cầu: Biết rằng để đi một đơn vị khoảng cách mất một đơn vị thời gian, biết danh sách những bạn dễ tính, hãy giúp Nam lên kế hoạch để đạt được S lớn nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên N, M và K (1≤N≤105, 1≤M≤105, 2≤K≤10);
  • Dòng thứ i trong số M dòng tiếp theo chứa ba số nguyên ui, vi, wi (1≤ui,vi≤N, ui≠vi, 1≤wi≤109) mô tả đoạn đường hai chiều nối hai địa điểm ui và vi với độ dài wi. Dữ liệu đảm bảo luôn tồn tại đường đi giữa hai địa điểm bất kì và không có hai đoạn đường nào nối trực tiếp cùng một cặp địa điểm;
  • Dòng tiếp theo chứa hai số nguyên a1 và b1 tương ứng là địa điểm xuất phát và địa điểm kết thúc đường đi tập của Nam;
  • Dòng thứ i trong số K−1 dòng tiếp theo (1≤i≤K−1) chứa ba số nguyên pi+1, ai+1, bi+1 tương ứng là độ khó/dễ tính, địa điểm xuất phát và địa điểm kết thúc đường đi tập của người bạn có chỉ số i+1, trong đó pi+1 bằng 0 nghĩa là khó tính và bằng 1 nếu dễ tính.

Các số trên cùng một dòng cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên duy nhất là giá trị lớn nhất của S.

Ràng buộc

  • 1≤N≤105; 1≤M≤105; 2≤K≤10;
  • 1≤ui,vi≤N, ui≠vi, 1≤wi≤109; hai địa điểm bất kì đều có đường đi tới nhau, không có hai đoạn đường nối cùng một cặp địa điểm;
  • 1≤ai,bi≤N, pi∈{0,1};
  • Số người bạn dễ tính không quá 5.

Subtasks

  • Subtask 1 (20% số test, 20% số điểm): K=2, a1=a2;
  • Subtask 2 (20% số test, 20% số điểm): N≤100, K=2;
  • Subtask 3 (30% số test, 30% số điểm): K=2;
  • Subtask 4 (20% số test, 20% số điểm): toàn bộ K−1 người bạn là khó tính;
  • Subtask 5 (10% số test, 10% số điểm): số người bạn dễ tính không quá 5.

Ví dụ

Input Output Giải thích
7 8 4
2 1 2
2 4 2
4 3 2
4 5 1
1 5 3
1 7 3
5 6 2
7 6 8
1 4
0 3 2
1 7 6
0 1 2
3 Nam đi 1→5→4. Người thứ 3 đi 7→1→5→6 và xuất phát trước giờ dự kiến 3 đơn vị thời gian, nên cùng Nam đến địa điểm 1 lúc 7 giờ và đi chung đoạn đường 1−5 dài 3. Những người còn lại xuất phát đúng giờ dự kiến.
6 7 2
1 2 1
2 3 1
3 4 10
1 5 5
5 6 1
6 4 6
3 5 4
2 6
1 1 4
1 Ví dụ thêm (không có trong đề gốc). Nam chỉ có một đường đi ngắn nhất 2→3→5→6. Người bạn dễ tính có hai đường đi ngắn nhất 1→2→3→4 và 1→5→6→4 (cùng dài 12). Đi chung đoạn 2−3 cần xuất phát sớm 1 đơn vị, đi chung đoạn 5−6 cần xuất phát đúng giờ, nên chỉ chọn được một trong hai: S=1.

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