trang chủ / bài tập / elderwand

Cây Đũa Phép Cơm Nguội

Đề bài

Mô tả

Trong thế giới phù thủy, có N phù thủy, mỗi người sở hữu một lượng sức mạnh phép thuật pi. Các phù thủy có thể tạo ra liên kết thần phục - những kết nối ma thuật cho phép sức mạnh truyền qua giữa họ.

Cây Đũa Phép Cơm Nguội (Elder Wand), một bảo vật huyền thoại, có khả năng khuếch đại sức mạnh phép thuật truyền qua các chuỗi thần phục. Khi một phù thủy cầm Cây Đũa Phép và truyền sức mạnh đến một phù thủy khác qua chuỗi liên kết, tổng sức mạnh được khuếch đại bằng tổng sức mạnh của tất cả phù thủy trên đường đi (bao gồm cả hai đầu).

Ban đầu, không có liên kết thần phục nào tồn tại. Bạn cần xử lý Q thao tác:

  • 1 u v - Tạo liên kết thần phục giữa phù thủy u và phù thủy v. Đảm bảo uv thuộc hai nhóm khác nhau.
  • 2 u v - Phá hủy liên kết trực tiếp giữa phù thủy uv. Đảm bảo liên kết này tồn tại.
  • 3 u v - Tính tổng sức mạnh trên đường đi từ phù thủy u đến phù thủy v. Đảm bảo uv thuộc cùng một nhóm.
  • 4 u x - Sức mạnh của phù thủy u thay đổi thành x.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên NQ.
  • Dòng thứ hai chứa N số nguyên p1,p2,,pN - sức mạnh ban đầu của các phù thủy.
  • Q dòng tiếp theo, mỗi dòng mô tả một thao tác theo định dạng trên.

Dữ liệu ra

Với mỗi thao tác loại 3, in ra tổng sức mạnh trên đường đi trên một dòng.

Ràng buộc

  • 1N,Q105
  • 1pi,x109
  • 1u,vN
  • Các thao tác luôn hợp lệ (xem mô tả ở trên)
  • Tổng sức mạnh trên đường đi có thể vượt quá 2311

Ví dụ

Input Output Giải thích
5 7
1 2 3 4 5
1 1 2
1 2 3
3 1 3
1 4 5
3 4 5
2 2 3
3 1 2
6
9
3
Liên kết 1-2, rồi 2-3. Truy vấn đường 1→2→3: tổng = 1+2+3 = 6.
Liên kết 4-5. Truy vấn đường 4→5: tổng = 4+5 = 9.
Phá liên kết 2-3. Truy vấn đường 1→2: tổng = 1+2 = 3.
3 5
10 20 30
1 1 2
1 2 3
3 1 3
4 2 50
3 1 3
60
90
Liên kết 1-2, rồi 2-3. Truy vấn đường 1→2→3: tổng = 10+20+30 = 60.
Cập nhật sức mạnh phù thủy 2 thành 50. Truy vấn lại đường 1→2→3: tổng = 10+50+30 = 90.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0