GCD on Tree

TimeLimit:10000MS  MemoryLimit:524288KB
64-bit integer IO format:%I64d
未提交 | 登录后收藏
Problem Description
You are given a tree with $n$ nodes and $n-1$ edges that make all nodes connected. Each node $i$ is assigned a weight $a_i$.

Now you need to perform $m$ operations of two different types. One is to change the weight of a node. The other is to query the number of pairs $(x,y)$ $(1 \le x \le y \le n)$ in the entire tree such that the greatest common divisor of the weights of all nodes on the shortest path from node $x$ to node $y$ is $k$.
Input
The first line contains a single integer $T$ $(1\le T\le 8)$, representing the number of test cases.

For each test case, the first line contains two integers $n$ $(1\le n\le 10^4)$ and $m$ $(1\le m\le 10^4)$, representing the number of nodes and operations respectively.

The second line contains $n$ integers. The $i$-th integer $a_i$ $(1\le a_i\le 10^4)$ represents the initial weight of node $i$.

The third line contains $n-1$ integers. The $i$-th integer $p_{i+1}$ $(1\le p_{i+1}\le i)$ represents that there's an edge between node $i+1$ and node $p_{i+1}$.

The following $m$ lines describe the operations.

- $\texttt{0 u c}$: change the weight of node $u$ $(1\le u\le n)$ to $c$ $(1\le c\le 10^4)$;
- $\texttt{1 k}$: query the number of pairs $(x,y)$ $(1 \le x \le y \le n)$ in the entire tree such that the greatest common divisor of the weights of all nodes on the shortest path from node $x$ to node $y$ is $k$ $(1 \le k \le 10^4)$.
Output
For each query, output the answer in a single line.
SampleInput
2
8 6
2 1 5 6 7 2 3 4
1 2 2 4 4 1 7
1 2
0 2 2
1 2
1 5
0 7 4
1 2
3 5
1 2 3
1 1
1 1
0 1 6
1 2
1 3
1 6
SampleOutput
3
9
1
17
4
2
2
1
Submit
题目统计信息详细
总AC数0
通过人数0
尝试人数0
总提交量0
AC率0.00%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: