DHBB 2026 - DX10 - 10 - Quản lý chi nhánh

Xem dạng PDF

Gửi bài giải

Điểm: 35,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout
Test chính thức

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

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Đề bài đã được chỉnh sửa để đảm bảo đúng với test.

Một tập đoàn lớn có ~N~ nhân viên. Hệ thống quản lý được cấu trúc theo dạng hình cây:

  • Nhân viên thứ nhất là Tổng giám đốc.

  • Mỗi nhân viên (ngoại trừ nhân viên thứ nhất) đều có đúng một người quản lý trực tiếp.

  • Mọi nhân viên cấp dưới (trực tiếp hoặc gián tiếp) của nhân viên ~X~ đều thuộc "chi nhánh" do ~X~ lãnh đạo.

  • Mỗi nhân viên có một điểm số đánh giá hiệu suất công việc ban đầu bằng ~0~. Có ~Q~ sự kiện xảy ra trong năm, thuộc ~2~ loại:

    • Loại ~1~: ~1~ ~U~ ~V~ - Tập đoàn thưởng ~V~ điểm hiệu suất cho nhân viên ~U~ và tất cả nhân viên thuộc chi nhánh do ~U~ lãnh đạo.

    • Loại ~2~: ~2~ ~U~ - Ban giám đốc cần thống kê tổng điểm hiệu suất của toàn bộ chi nhánh do ~U~ lãnh đạo bao gồm cả điểm của ~U~.

Yêu cầu: Hãy lập trình trả lời nhanh các truy vấn loại ~2~.

Input

  • Dòng ~1~: Hai số nguyên dương ~N~ và ~Q~ ~(1 \le N, Q \le 2 \times 10^5)~.

  • ~N - 1~ dòng tiếp theo: Mỗi dòng chứa hai số nguyên ~U~ và ~V~ mô tả một mối quan hệ giữa nhân viên ~U~ và nhân viên ~V~. Đảm bảo cấu trúc là một cây với gốc là ~1~.

  • ~Q~ dòng tiếp theo: Mỗi dòng bắt đầu bằng loại truy vấn ~1~ hoặc ~2~.

    • Nếu là ~1~, theo sau là ~U~ và ~V~ ~(1 \le U \le N, 1 \le V \le 1000)~.

    • Nếu là ~2~, theo sau là ~U~ ~(1 \le U \le N)~.

Output

Với mỗi truy vấn loại ~2~, in ra kết quả trên một dòng.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~N, Q \le 2000~
2 ~20\%~ Sơ đồ công ty là một đường thẳng
3 ~20\%~ Cây cấu trúc có độ sâu không quá ~50~
4 ~40\%~ Không có ràng buộc gì thêm

Sample Input 1

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

Sample Output 1

30
45

Sample Input 2

4 3
1 2
2 3
3 4
1 3 20
2 2
2 4

Sample Output 2

40
20

Notes

Với ví dụ thứ nhất:

  • Truy vấn ~1~ ~(1\ 2\ 10)~: Cấp ~10~ điểm cho nhánh do NV ~2~ quản lý (gồm NV ~2, 4, 5~).

  • Truy vấn ~2~ ~(2\ 1)~: Tính tổng nhánh ~1~ (toàn công ty). Có ~3~ người mang ~10~ điểm, tổng ~= 30~.

  • Truy vấn ~3~ ~(1\ 1\ 5)~: Cấp ~5~ điểm cho toàn công ty. Lúc này NV ~2, 4, 5~ có ~15~ điểm; NV ~1, 3~ có ~5~ điểm.

  • Truy vấn ~4~ ~(2\ 2)~: Tính tổng nhánh ~2~. Gồm NV ~2~ ~(15)~ + NV ~4~ ~(15)~ + NV ~5~ ~(15) = 45~.

Với ví dụ thứ hai, cấu trúc công ty là đường thẳng: ~1~ quản lý ~2~, ~2~ quản lý ~3~, ~3~ quản lý ~4~.

  • Truy vấn ~1~ ~(1\ 3\ 20)~: Thưởng ~20~ điểm cho chi nhánh của NV ~3~ (gồm NV ~3~ và ~4~).

  • Truy vấn ~2~ ~(2\ 2)~: Tính tổng nhánh ~2~ (gồm NV ~2, 3, 4~). NV ~2~ là ~0~, NV ~3~ và ~4~ mỗi người ~20~. Tổng ~= 40~.

  • Truy vấn ~3~ ~(2\ 4)~: Tính tổng nhánh ~4~ (chỉ có NV ~4~). Tổng ~= 20~.


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.