CF396C.On Changing Tree

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a rooted tree consisting of nn vertices numbered from 11 to nn . The root of the tree is a vertex number 11 .

Initially all vertices contain number 00 . Then come qq queries, each query has one of the two types:

  • The format of the query: 11 vv xx kk . In response to the query, you need to add to the number at vertex vv number xx ; to the numbers at the descendants of vertex vv at distance 11 , add xkx-k ; and so on, to the numbers written in the descendants of vertex vv at distance ii , you need to add x(ik)x-(i·k) . The distance between two vertices is the number of edges in the shortest path between these vertices.
  • The format of the query: 22 vv . In reply to the query you should print the number written in vertex vv modulo 10000000071000000007 (109+7)(10^{9}+7) .

Process the queries given in the input.

输入格式

The first line contains integer nn ( 1<=n<=31051<=n<=3·10^{5} ) — the number of vertices in the tree. The second line contains n1n-1 integers p2,p3,... pnp_{2},p_{3},...\ p_{n} ( 1<=p_{i}<i ), where pip_{i} is the number of the vertex that is the parent of vertex ii in the tree.

The third line contains integer qq ( 1<=q<=31051<=q<=3·10^{5} ) — the number of queries. Next qq lines contain the queries, one per line. The first number in the line is typetype . It represents the type of the query. If type=1type=1 , then next follow space-separated integers v,x,kv,x,k ( 1<=v<=n1<=v<=n ; 0<=x<10^{9}+7 ; 0<=k<10^{9}+7 ). If type=2type=2 , then next follows integer vv ( 1<=v<=n1<=v<=n ) — the vertex where you need to find the value of the number.

输出格式

For each query of the second type print on a single line the number written in the vertex from the query. Print the number modulo 10000000071000000007 (109+7)(10^{9}+7) .

输入输出样例

  • 输入#1

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

    输出#1

    2
    1
    

说明/提示

You can read about a rooted tree here: http://en.wikipedia.org/wiki/Tree_(graph_theory).

首页