#P15080. [ICPC 2024 Chengdu R] Good Partitions

    ID: 15026 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>数学线段树2024最大公约数 gcdICPC成都

[ICPC 2024 Chengdu R] Good Partitions

说明

Lawliet 拥有一个长度为 nn 的数字序列 a1,a2,,ana_1, a_2, \ldots, a_n,他希望知道「好数字」的个数。

定义一个整数 kk 是「好数字」,如果它满足以下条件:

  • 1kn1 \leq k \leq n
  • 将序列 aa 依据 kk 按照以下划分方法分成若干份后,每一份序列都是单调不降的。

划分方法为:

  • 将序列 aa 分成 nk\lceil \frac{n}{k} \rceil 份;
  • 对于第 ii 份(1ink11 \leq i \leq \lceil \frac{n}{k} \rceil - 1),包含的元素是 $a_{(i - 1) \times k + 1}, a_{(i - 1) \times k + 2}, \ldots, a_{i \times k}$;
  • 对于第 nk\lceil \frac{n}{k} \rceil 份,包含的元素是 $a_{(\lceil \frac{n}{k} \rceil - 1) \times k + 1}, \ldots, a_n$。

Lawliet 认为这个问题太过简单了,于是他会进行 qq 次修改,每次修改会给出两个正整数 ppvv,然后将 apa_p 的数值修改为 vv

Lawliet 需要你帮助计算,对于未进行任何修改前以及序列 aa 每次修改后,满足上述条件的「好数字」的个数。

输入格式

第一行包含一个整数 tt1t101\le t\le 10),代表测试组数。

对于每组测试数据,第一行包含两个整数 nn1n21051 \le n \le 2 \cdot 10^5)和 qq1q21051 \le q \le 2 \cdot 10^5),分别表示序列的长度和修改次数。

第二行包含 nn 个整数,表示序列 a1,a2,,ana_1, a_2, \ldots, a_n1ai21091\le a_i\le 2\cdot 10^9)。

接下来的 qq 行,每行包含两个整数 pp1pn1 \le p \le n)和 vv1v21091 \le v \le 2 \cdot 10^9),表示将序列中的第 pp 个位置的元素修改为 vv

单个测试点中 nn 之和与 qq 之和均不超过 21052\cdot 10^5

输出格式

对于每组测试数据,输出 q+1q + 1 行,分别代表未进行任何修改前以及序列 aa 每次修改后,序列中的「好数字」的个数。

1
5 2
4 3 2 6 1
2 5
3 5
1
2
3