SQRT Contest #04 - Tổng khoảng cách

Xem dạng PDF

Gửi bài giải

Điểm: 19,00 (OI)
Giới hạn thời gian: 3.5s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho một cây có ~n~ đỉnh, ~n - 1~ cạnh. Mỗi cạnh nối hai đỉnh ~u_i, v_i~ và có trọng số là ~w_i~. Khoảng cách giữa hai đỉnh trên cây là tổng trọng số các cạnh của đường đi đơn giữa hai đỉnh. Ban đầu có ~k~ đỉnh đặc biệt ~x_1, x_2, ..., x_k~. Bạn cần tính tổng khoảng cách nhỏ nhất từ mỗi đỉnh trên cây đến một trong các đỉnh đặc biệt đó. Có ~q~ truy vấn thay đổi các đỉnh đặc biệt, mỗi truy vấn sẽ xóa ~a~ đỉnh ~y_1, y_2, ..., y_a~ khỏi tập đỉnh, sau đó thêm ~b~ đỉnh ~z_1, z_2, ..., z_b~ vào tập đỉnh. Sau mỗi truy vấn, tính tổng khoảng cách nhỏ nhất từ mỗi đỉnh trên cây đến một trong các đỉnh đặc biệt như trên.

Dữ liệu

  • Dòng đầu tiên gồm ba số nguyên ~n, k, q~ ~(1 \le k \le n \le 10^5, 0 \le q \le 400)~.
  • Dòng tiếp theo gồm ~k~ số nguyên ~x_1, x_2, ..., x_k~ ~(1 \le x_i \le n)~. Dữ liệu đầu vào đảm bảo các giá trị ~x_i~ đôi một phân biệt.
  • ~n - 1~ dòng tiếp theo, mỗi dòng gồm ba số nguyên ~u_i, v_i, w_i~ ~(1 \le u_i, v_i \le n, 1 \le w_i \le 10000)~.
  • Tiếp theo là ~q~ cặp dòng mô tả các truy vấn, mỗi cặp dòng có định dạng như sau:
    • Dòng đầu tiên gồm số nguyên dương ~a~, sau đó là ~a~ số nguyên dương ~y_1, y_2, ..., y_a~ ~(0 \le a \le 200, 1 \le y_i \le n)~. Dữ liệu đầu vào đảm bảo các giá trị ~y_i~ đôi một phân biệt và có trong tập các đỉnh đặc biệt hiện tại.
    • Dòng tiếp theo gồm số nguyên dương ~b~, sau đó là ~b~ số nguyên dương ~z_1, z_2, ..., z_b~ ~(0 \le b \le 200, 1 \le z_i \le n)~. Dữ liệu đầu vào đảm bảo các giá trị ~z_i~ đôi một phân biệt và không có trong tập các đỉnh đặc biệt hiện tại.
  • Dữ liệu đầu vào đảm bảo sau mỗi truy vấn thay đổi cây có ít nhất ~1~ đỉnh đặc biệt.

Kết quả

  • Dòng đầu tiên gồm một số nguyên là tổng khoảng cách với tập đỉnh đặc biệt ban đầu.
  • Tiếp theo là ~q~ dòng, dòng thứ ~i~ là tổng khoảng cách sau truy vấn thay đổi thứ ~i~.

Subtask

Điểm Ràng buộc bổ sung
~15~ ~v_i = u_i + 1, k = 1, a = b~ trong mọi truy vấn
~15~ ~v_i = u_i + 1~
~15~ ~n \le 2000, q = 0~
~15~ ~k = 1, q = 0~
~10~ ~k = 1, a = b~ trong mọi truy vấn
~10~ ~q = 0~
~10~ ~q \le 30~
~10~ Không có giới hạn gì thêm

Ví dụ

Ví dụ 1

Dữ liệu

5 1 1
1
1 2 3
1 3 4
2 4 3
2 5 1
0
1 2

Kết quả

17
8

Giải thích

Hình minh họa cây ban đầu.

  • Có duy nhất đỉnh ~1~ là đỉnh đặc biệt.
  • Khoảng cách từ các đỉnh ~1, 2, 3, 4, 5~ đến đỉnh ~1~ lần lượt là ~0, 3, 4, 6, 4~, tổng là ~17~.

Hình minh họa cây sau truy vấn thay đổi.

  • Có đỉnh ~1~ và ~2~ là đỉnh đặc biệt.
  • Khoảng cách từ các đỉnh ~1, 3~ đến đỉnh ~1~ lần lượt là ~0, 4~.
  • Khoảng cách từ các đỉnh ~2, 4, 5~ đến đỉnh ~2~ lần lượt là ~0, 3, 1~.
  • Tổng khoảng cách là ~8~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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