CF960H.Santa's Gift

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Santa has an infinite number of candies for each of mm flavours. You are given a rooted tree with nn vertices. The root of the tree is the vertex 11 . Each vertex contains exactly one candy. The ii -th vertex has a candy of flavour fif_i .

Sometimes Santa fears that candies of flavour kk have melted. He chooses any vertex xx randomly and sends the subtree of xx to the Bakers for a replacement. In a replacement, all the candies with flavour kk are replaced with a new candy of the same flavour. The candies which are not of flavour kk are left unchanged. After the replacement, the tree is restored.

The actual cost of replacing one candy of flavour kk is ckc_k (given for each kk ). The Baker keeps the price fixed in order to make calculation simple. Every time when a subtree comes for a replacement, the Baker charges CC , no matter which subtree it is and which flavour it is.

Suppose that for a given flavour kk the probability that Santa chooses a vertex for replacement is same for all the vertices. You need to find out the expected value of error in calculating the cost of replacement of flavour kk . The error in calculating the cost is defined as follows.

$$ Error\ E(k) =\ (Actual Cost\ –\ Price\ charged\ by\ the\ Bakers) ^ 2. $$ </p><p>Note that the actual cost is the cost of replacement of one candy of the flavour $k$ multiplied by the number of candies in the subtree.</p><p>Also, sometimes Santa may wish to replace a candy at vertex $x$ with a candy of some flavour from his pocket.</p><p>You need to handle two types of operations: </p><ul> <li> Change the flavour of the candy at vertex $x$ to $w$ . </li><li> Calculate the expected value of error in calculating the cost of replacement for a given flavour $k$$$.

输入格式

The first line of the input contains four integers nn ( 2n51042 \leqslant n \leqslant 5 \cdot 10^4 ), mm , qq , CC ( 1m,q51041 \leqslant m, q \leqslant 5 \cdot 10^4 , 0C1060 \leqslant C \leqslant 10^6 ) — the number of nodes, total number of different flavours of candies, the number of queries and the price charged by the Bakers for replacement, respectively.

The second line contains nn integers f1,f2,,fnf_1, f_2, \dots, f_n ( 1fim1 \leqslant f_i \leqslant m ), where fif_i is the initial flavour of the candy in the ii -th node.

The third line contains n1n - 1 integers p2,p3,,pnp_2, p_3, \dots, p_n ( 1pin1 \leqslant p_i \leqslant n ), where pip_i is the parent of the ii -th node.

The next line contains mm integers c1,c2,cmc_1, c_2, \dots c_m ( 1ci1021 \leqslant c_i \leqslant 10^2 ), where cic_i is the cost of replacing one candy of flavour ii .

The next qq lines describe the queries. Each line starts with an integer tt ( 1t21 \leqslant t \leqslant 2 ) — the type of the query.

If t=1t = 1 , then the line describes a query of the first type. Two integers xx and ww follow ( 1xn1 \leqslant  x \leqslant  n , 1wm1 \leqslant  w \leqslant m ), it means that Santa replaces the candy at vertex xx with flavour ww .

Otherwise, if t=2t = 2 , the line describes a query of the second type and an integer kk ( 1km1 \leqslant k \leqslant m ) follows, it means that you should print the expected value of the error in calculating the cost of replacement for a given flavour kk .

The vertices are indexed from 11 to nn . Vertex 11 is the root.

输出格式

Output the answer to each query of the second type in a separate line.

Your answer is considered correct if its absolute or relative error does not exceed 10610^{-6} .

Formally, let your answer be aa , and the jury's answer be bb . The checker program considers your answer correct if and only if abmax(1,b)106\frac{|a-b|}{max(1,b)}\leqslant 10^{-6} .

输入输出样例

  • 输入#1

    3 5 5 7
    3 1 4
    1 1
    73 1 48 85 89
    2 1
    2 3
    1 2 3
    2 1
    2 3
    

    输出#1

    2920.333333333333
    593.000000000000
    49.000000000000
    3217.000000000000
    

说明/提示

For 11 -st query, the error in calculating the cost of replacement for flavour 11 if vertex 11 , 22 or 33 is chosen are 66266^2 , 66266^2 and (7)2(-7)^2 respectively. Since the probability of choosing any vertex is same, therefore the expected value of error is 662+662+(7)23\frac{66^2+66^2+(-7)^2}{3} .

Similarly, for 22 -nd query the expected value of error is 412+(7)2+(7)23\frac{41^2+(-7)^2+(-7)^2}{3} .

After 33 -rd query, the flavour at vertex 22 changes from 11 to 33 .

For 44 -th query, the expected value of error is (7)2+(7)2+(7)23\frac{(-7)^2+(-7)^2+(-7)^2}{3} .

Similarly, for 55 -th query, the expected value of error is 892+412+(7)23\frac{89^2+41^2+(-7)^2}{3} .

首页