DHBB 2023 - CHL - 11 - Truy vấn trên cây

Xem dạng PDF

Gửi bài giải

Điểm: 45,00 (OI)
Giới hạn thời gian: 2.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, 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

Cho một cây gồm ~n~ đỉnh được đánh số từ ~1~ đến ~n~, trong đó đỉnh ~1~ là gốc. Mỗi đỉnh lưu một số nguyên, ban đầu giá trị tại tất cả các đỉnh đều bằng ~0~.

Có ~q~ truy vấn thuộc một trong ba loại:

  1. add ~v\ k\ l~: Với mỗi đỉnh ~u~ thuộc cây con gốc ~v~, gọi ~d~ là khoảng cách từ ~v~ đến ~u~ tính theo số cạnh, cộng thêm ~k-d\cdot l~ vào giá trị của ~u~;

  2. get ~v~: Tính giá trị của đỉnh ~v~;

  3. sum ~v~: Tính tổng giá trị của các đỉnh thuộc cây con gốc ~v~.

Yêu cầu: In kết quả của các truy vấn loại getsum theo mô đun ~998244353~.

Input

  • Dòng đầu tiên chứa số nguyên ~n~ ~(2\le n\le5\cdot10^5)~;

  • Dòng thứ hai chứa ~n-1~ số nguyên ~p_2,p_3,\dots,p_n~ ~(1\le p_i\le i-1)~, trong đó ~p_i~ là cha trực tiếp của đỉnh ~i~;

  • Dòng thứ ba chứa số nguyên ~q~ ~(1\le q\le5\cdot10^5)~;

  • ~q~ dòng tiếp theo, mỗi dòng có một trong ba dạng:

    • add ~v\ k\ l~;

    • get ~v~;

    • sum ~v~.

    Trong đó ~1\le v\le n~ và ~0\le |k|,|l|\le2\cdot10^9~.

Output

In các kết quả của truy vấn getsum theo thứ tự xuất hiện, lấy theo mô đun ~998244353~.

Scoring

Subtask Điểm Ràng buộc
1 ~30\%~ ~n,q\le7000~
2 ~25\%~ Mọi truy vấn cập nhật đều có ~l=0~
3 ~25\%~ Không có truy vấn loại sum
4 ~20\%~ Không có ràng buộc gì thêm

Sample Input 1

7
1 2 2 4 1 6
11
add 1 5 1
get 1
get 2
get 3
get 4
get 5
get 6
get 7
add 4 7 3
sum 2
sum 6

Sample Output 1

5 4 3 3 2 4 3 23 7

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.