4302: [GESP202406七级] 区间乘积
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
## 题目背景
2024 年 6 月 GESP C++ 七级编程第 2 题
## 题目描述
小杨有一个包含 $n$ 个正整数的序列 $A=[a_1,a_2,...,a_n]$ 。
小杨想知道有多少对 $ \lt l,r>(1 \leq l \leq r \leq n)$ 满足 $a_l \times a_{l+1} \times ... \times a_r$ 为完全平方数。
一个正整数 $x$ 为完全平方数当且仅当存在一个正整数 $y$ 使得 $x=y \times y$ 。
输入
## 输入格式
第一行包含一个正整数 $n$ ,代表树的节点数。
第二行包含 $n$ 个非负整数 $a_1,a_2,...,a_n$ ,其中如果 $a_i=0$ ,则节点 $i$ 的颜色为白色,否则为黑色。
之后 $n-1$ 行,每行包含两个正整数 $x_i,y_i$ ,代表存在一条连接节点 $x_i$ 和 $y_i$ 的边。
输出
## 输出格式
输出一个整数,代表满足要求的 $ \lt l,r>$ 数量。
样例输入 复制
5
3 2 4 3 2
样例输出 复制
2
提示
## 样例
```input1
5
3 2 4 3 2
```
```output1
2
```
## 样例解释
满足条件的 $ \lt l,r>$ 有 $ \lt 3,3>$ 和 $ \lt 1,5>$ 。
## 数据范围
| 子任务编号 | 数据点占比 | $n$ | $a_i$ |
| ----------| ----------| -----------------|------|
| 1 | $20\%$ | $\leq 10^5$ | $1\leq a_i \leq 2$ |
| 2 | $ 40\%$ | $\leq 100$ | $1\leq a_i \leq 30$ |
| 3 | $40\%$ | $\leq 10^5$ | $1\leq a_i \leq 30$ |
对于全部数据,保证有 $1 \leq n \leq 10^5 , 1 \leq a_i \leq 30$ 。