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 |
2 |
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.