Phân đoạn vkl

View as PDF

Submit solution

Points: 1.00
Time limit: 1.5s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type

Cho một cây gồm ~n~ đỉnh, các đỉnh được đánh số từ ~1~ tới ~n~, đỉnh 1 là gốc của cây. Trên mỗi đỉnh của cây lưu một số nguyên, ban đầu giá trị ở tất cả các đỉnh là ~0~. Bạn cần thực hiện ~q~ truy vấn thuộc một trong ba loại sau:

  • add ~v~ ~k~ ~l~: Ta thay đổi giá trị các đỉnh thuộc cây con gốc ~v~ theo quy tắc sau:
    • Giá trị của đỉnh ~v~ được cộng thêm ~k~;
    • Giá trị các đỉnh là con trực tiếp của ~v~ được cộng thêm ~k-l~;
    • Giá trị các đỉnh là con trực tiếp của con trực tiếp của ~v~ cộng thêm ~k-2×l~;
    • Giá trị các đỉnh là con trực tiếp của con trực tiếp của con trực triếp của v được cộng thêm ~k-3×l~; các thao tác được thực hiện cho đến các nút lá của cây con gốc ~v~.
  • get ~v~: tính giá trị của đỉnh ~v~.
  • sum ~v~: tính tổng giá trị các đỉnh thuộc cây con gốc ~v.~ Yêu cầu: In ra kết quả các truy vấn loại 2 và 3 theo mô đun ~998244353.~

Input

  • Dòng đầu tiên chứa số nguyên ~n~ với ~2≤n≤5×10^5~ là số đỉnh của cây.
  • Dòng thứ hai chứa ~n-1~ số nguyên ~p_2,p_3,…,p_n~ với ~1≤p_i≤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~ với ~1≤q≤5×10^5~ là số truy vấn cần thực hiện.
  • Trong ~q~ dòng cuối cùng, mỗi dòng mô tả một truy vấn theo một trong ba định dạng add ~v~ ~k~ ~l~, get ~v~ hoặc sum ~v~ với ~1≤v≤n~ và ~0≤|k|,|l|≤2×10^9~.

Output

Với mỗi truy vấn loại 2 và 3, in ra một số nguyên không âm thể hiện kết quả của truy vấn theo mô đun ~998244353.~ Các số được viết trên một dòng của file dữ liệu vào/ra được ghi cách nhau bởi dấu cách.

Sample input

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

5 4 3 3 2 4 3 23 7

Subtasks

  • Có 30% số test ứng với ~1≤n,q≤7000;~
  • Có 25% số test ứng với có truy vấn loại 1 với ~l=0;~
  • Có 25% số test khác không có truy vấn loại 3;
  • Có 20% số test còn lại có giới hạn như dữ kiện bài ra.

Comments

Please read the guidelines before commenting.


There are no comments at the moment.