CF960H.Santa's Gift
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Santa has an infinite number of candies for each of m flavours. You are given a rooted tree with n vertices. The root of the tree is the vertex 1 . Each vertex contains exactly one candy. The i -th vertex has a candy of flavour fi .
Sometimes Santa fears that candies of flavour k have melted. He chooses any vertex x randomly and sends the subtree of x to the Bakers for a replacement. In a replacement, all the candies with flavour k are replaced with a new candy of the same flavour. The candies which are not of flavour k are left unchanged. After the replacement, the tree is restored.
The actual cost of replacing one candy of flavour k is ck (given for each k ). The Baker keeps the price fixed in order to make calculation simple. Every time when a subtree comes for a replacement, the Baker charges C , no matter which subtree it is and which flavour it is.
Suppose that for a given flavour k 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 k . 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 n ( 2 ⩽ n ⩽ 5⋅104 ), m , q , C ( 1 ⩽ m,q ⩽ 5⋅104 , 0⩽C⩽106 ) — 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 n integers f1,f2,…,fn ( 1⩽fi⩽m ), where fi is the initial flavour of the candy in the i -th node.
The third line contains n−1 integers p2,p3,…,pn ( 1⩽pi⩽n ), where pi is the parent of the i -th node.
The next line contains m integers c1,c2,…cm ( 1⩽ci⩽102 ), where ci is the cost of replacing one candy of flavour i .
The next q lines describe the queries. Each line starts with an integer t ( 1 ⩽ t ⩽ 2 ) — the type of the query.
If t = 1 , then the line describes a query of the first type. Two integers x and w follow ( 1 ⩽ x⩽ n , 1⩽ w⩽ m ), it means that Santa replaces the candy at vertex x with flavour w .
Otherwise, if t=2 , the line describes a query of the second type and an integer k ( 1 ⩽ k ⩽ m ) follows, it means that you should print the expected value of the error in calculating the cost of replacement for a given flavour k .
The vertices are indexed from 1 to n . Vertex 1 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 10−6 .
Formally, let your answer be a , and the jury's answer be b . The checker program considers your answer correct if and only if max(1,b)∣a−b∣⩽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 1 -st query, the error in calculating the cost of replacement for flavour 1 if vertex 1 , 2 or 3 is chosen are 662 , 662 and (−7)2 respectively. Since the probability of choosing any vertex is same, therefore the expected value of error is 3662+662+(−7)2 .
Similarly, for 2 -nd query the expected value of error is 3412+(−7)2+(−7)2 .
After 3 -rd query, the flavour at vertex 2 changes from 1 to 3 .
For 4 -th query, the expected value of error is 3(−7)2+(−7)2+(−7)2 .
Similarly, for 5 -th query, the expected value of error is 3892+412+(−7)2 .