#158. #2322. 「清华集训 2017」Hello world!

#2322. 「清华集训 2017」Hello world!

说明

<link href="https://dn-menci.qbox.me/libreoj/libs/KaTeX/katex.min.css" rel="stylesheet">

不远的一年前,小V还是一名清华集训的选手,坐在机房里为他已如风中残烛的OI生涯做最后的挣扎。而如今,他已成为了一名光荣的出题人。他感到非常激动,不禁感叹道:“Hello world!”。

小V有nnn道题,他的题都非常毒瘤,所以关爱选手的ufozgg打算削弱这些题。为了逃避削弱,小V把他的毒瘤题都藏到了一棵nnn个节点的树里(节点编号从111nnn),这棵树上的所有节点与小V的所有题一一对应。小V的每一道题都有一个毒瘤值,节点 iii (表示标号为 iii 的树上节点,下同)对应的题的毒瘤值为 aia_iai

魔法师小V为了保护他的题目,对这棵树施了魔法,这样一来,任何人想要一探这棵树的究竟,都必须在上面做跳跃操作。每一次跳跃操作包含一个起点 sss 、一个终点 ttt 和一个步频 kkk ,这表示跳跃者会从 sss 出发,在树上沿着简单路径多次跳跃到达 ttt ,每次跳跃,如果从当前点到 ttt 的最短路长度不超过 kkk ,那么跳跃者就会直接跳到 ttt ,否则跳跃者就会沿着最短路跳过恰好 kkk 条边。

既然小V把题藏在了树里,ufozgg就不能直接削弱题目了。他就必须在树上跳跃,边跳跃边削弱题目。ufozgg每次跳跃经过一个节点(包括起点 sss ,当 s=ts=ts=t 的时候也是如此),就会把该节点上的题目的毒瘤值开根并向下取整:即如果他经过了节点iii,他就会使ai=⌊ai⌋a_i=\lfloor{\sqrt{a_i}}\rfloorai=ai。这种操作我们称为削弱操作。

ufozgg还会不时地希望知道他对题目的削弱程度。因此,他在一些跳跃操作中会放弃对题目的削弱,转而统计该次跳跃经过节点的题目毒瘤值总和。这种操作我们称为统计操作。

吃瓜群众绿绿对小V的毒瘤题和ufozgg的削弱计划常感兴趣。他现在想知道ufozgg每次做统计操作时得到的结果。你能帮帮他吗?

输入格式

输入的第一行一个正整数 nnn ,表示树的节点数。

接下来一行 nnn 个用空格隔开的正整数 a1,a2,,an ,依次描述每个节点上题目的毒瘤值。

接下来 n−1n-1n1 行,描述这棵树。每行 222 个正整数 u,vu,vu,v ,描述一条树上的边 (u,v)\left( u,v\right)(u,v) 。(保证 1≤u,v≤n1\leq u,v\leq n1u,vn ,保证这 n−1n-1n1 条边构成了一棵树)

接下来一行一个正整数 QQQ ,表示ufozgg的操作总数。

接下来 QQQ 行按ufozgg执行操作的先后顺序依次描述每个操作,每行 444 个用空格隔开的整数 op,s,t,kop,s,t,kop,s,t,k ,表示ufozgg此次跳跃的起点为 sss ,终点为 ttt ,步频为 kkk 。如果 op=0op=0op=0 ,表示这是一次削弱操作;如果 op=1op=1op=1 ,表示这是一次统计操作。

输出格式

对于每个统计操作,输出一行一个整数,表示此次统计操作统计到的所有题的毒瘤值总和。

样例

5
1 2 3 4 5
1 2
2 3
3 4
2 5
5
1 1 4 1
1 1 4 2
0 1 5 2
1 2 4 5
1 1 5 1
10
8
6
5

提示

对于100%100\%100%的数据,保证n≤50000n\leq 50000n50000Q≤400000Q\leq 400000Q4000001≤ai≤10131\leq a_i\leq {10}^{13}1ai1013,对于所有的操作保证0≤op≤10\leq op\leq 10op11≤s,t,k≤n1\leq s,t,k\leq n1s,t,kn

测试点编号 n=n=n= Q=Q=Q= 其他约束 测试点分值
1 200020002000 500050005000 121212
2 400004000040000 400000400000400000 141414
3 450004500045000 400000400000400000 141414
4 500005000050000 400000400000400000 对于所有边都有 u+1=vu+1=vu+1=v 171717
5 500005000050000 400000400000400000 保证所有初始毒瘤值 ai=1a_i=1ai=1 777
6 500005000050000 400000400000400000 保证对于所有询问 k=1k=1k=1 131313
7 500005000050000 400000400000400000 232323