TRUY VẤN TRÊN CÂY KHUNG

Cho đồ thị ~G~ vô hướng có ~n~ đỉnh và ~m~ cạnh. Hãy trả lời ~q~ truy vấn sau, mỗi truy vấn thuộc một trong ba loại:

  1. ~Zero(u,v)~: Thay đổi trọng số của cạnh ~(u,v)~ về ~0~.
  2. ~Original(u,v)~: Thay đổi trọng số của cạnh ~(u,v)~ về giá trị ban đầu.
  3. ~CalWeight()~: Trả về trọng số cây khung nhỏ nhất của ~G~.

Dữ liệu vào:

  • Dòng đầu tiên chứa ba số nguyên ~n,m,q~ ~(1≤n≤2000; 1≤m≤20000; 1≤q≤5000)~ lần lượt cho biết số lượng đỉnh, số lượng cạnh của ~G~ và số lượng truy vấn.
  • ~m~ dòng tiếp theo mõi dòng chứa 2 số nguyên ~u,v~ ~(1≤u,v≤n)~ và ~w~ ~(1≤w≤10^9)~ cho biết cạnh ~(u,v)~ có trọng số ~w~.
  • Dòng thứ ~i~ trong ~q~ dòng tiếp theo tương ứng với truy vấn thứ ~i~. Mỗi truy vấn bắt đầu bằng 1 số nguyên ~type~ thể hiện loại truy vấn, nếu ~type=1~ hoặc ~type=2~ thì theo sau là 2 số nguyên ~u,v~ cho biết tham số của truy vấn.

Kết quả: Với mỗi truy vấn loại 3 in ra một số nguyên cho biết câu trả lời của truy vấn đó.

Ví dụ:

Input

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

Output

3
2
3 

Ràng buộc:

  • Có 80% số test có ~1≤n≤100; m≤1000; q≤1000~
  • Có 10% số test khác có ~1≤n≤2000~ và không có quy vấn loại 2
  • Có 10% số test còn lại không có ràng buộc gì thêm.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. nongvantien11 (30/47)
  2. dodoanson (19/30)
  3. nnminh1806 (15/30)
Trong 7 ngày
  1. nongvantien11 (99/155)
  2. qtaydzs1tg (72/135)
  3. trungo0 (49/91)
Trong 30 ngày
  1. nongvantien11 (192/300)
  2. trungo0 (131/242)
  3. ngocbichh (110/267)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 41085

Lưu Hải Phong - 2020
[email protected]