Thứ Hai, 15 tháng 8, 2022

TDC Thay đổi cây

Cho một cây gồm n đỉnh được đánh số từ 1 đến n. Gốc của cây là đỉnh số 1.

Ban đầu tất cả các đỉnh có trọng số là 0. Thực hiện q truy vấn, mỗi truy vấn thuộc một trong hai dạng:

  • Truy vấn dạng 1 v x k: cộng thêm x vào trọng số ở đỉnh v; các đỉnh con của v cách v một cạnh thì được cộng thêm x - k; cách v hai cạnh thì cộng thêm x – 2*k, cứ như vậy …, tổng quát, các đỉnh con cách v i cạnh sẽ được cộng thêm x - (i *k).
  • Truy vấn dạng 2 v: ghi trọng số của đỉnh v modulo 1 000 000 007 (109 + 7).

Yêu cầu: thực hiện các truy vấn

Input

  • Dòng đầu ghi số nguyên dương n là số đỉnh của cây. (1 ≤ n ≤ 3 * 105)
  • Dòng thứ hai ghi n – 1 số nguyên p2, p3, …, pn, với pi là đỉnh cha của đỉnh thứ i (1 ≤ pi ≤ i)
  • Dòng thứ ba ghi số nguyên q là số truy vấn (1 ≤ q ≤ 3 * 105)
  • q dòng tiếp theo, mỗi dòng ghi một truy vấn thuộc một trong hai dạng
    • dạng 1 v x k (1 ≤ v ≤ n; 0 ≤ x ≤ 109 + 7; 0 ≤ k ≤ 109 + 7)
    • dạng 2 v (1 ≤ v ≤ n)

Output: với mỗi truy vấn loại 2, in ra kết quả tìm được, luôn lấy số dương. Ví dụ: (-3) mod (109 + 7) = 1 000 000 004

Input

Output

3
1 1
3
1 1 2 1
2 1
2 2

2
1

 

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.