摘要: 题意:给定长为\(n\)序列\(\{a_i\}\)与正整数\(k\),\(n,m \leq 2×10^5\),\(1 \leq a_i \leq 10^6\),有\(m\)次操作,包括修改\(a_x = y\)和查询\([l,r]\)内长度为\(k\)且两两互质的子区间个数。思路: 1. **刻画不互质关系**:将\(a_i\)分解质因数,每个质因数用set维护有相同质因数且小于当前位置的最大位置,以确定\(p_i\)(\(a_i\)最近的使\(gcd(a_i, a_{p_i}) > 1\)且\(p_i < i\)的位置)。修改\(a_x\)时,更新相关set与\(p_{next(x)}\)及\(p_x\),时间复杂度\(O((n + m)\log^2)\)。 2. **区间查询实现**:因\(k\)固定,维护以\(x\)为左端点的\([x, x + k - 1]\)区间合法性。\(p_i > i - k\)时,标记\([i - k + 1, p_i]\)不合法。通过线段树维护区间最小值及最小值个数,将求无标记子区间个数转化为查询线段树,从而解决查询操作。 阅读全文
posted @ 2025-10-05 21:38 wing_heart 阅读(5) 评论(0) 推荐(1)
摘要: - **思路一**:先考虑 $m = 1$ 的情况,通过推导得出维护 $sum_{i \in [0,k]} = \sum_{j \in [l + 1,n]} s_{j}^i$ 的方法,时间复杂度为 $O(Nk^2)$。对于 $m \neq 1$ 的情况,枚举矩形的 $y1,y2,x1$,按照类似思路计算,时间复杂度为 $O(N\sqrt{N}k^2)$。 - **思路二**:同样先看 $m = 1$ 时,对答案表达式进行展开和变形,利用后缀和计算,得出时间复杂度为 $O(Nk)$。当 $m \neq 1$ 时,枚举矩形的 $y1,y2,x1$,对答案表达式展开,同样利用后缀和计算,时间复杂度为 $O(N \sqrt{N} k)$,相比思路一少一个 $k$ 的复杂度 。 阅读全文
posted @ 2025-10-05 17:28 wing_heart 阅读(7) 评论(0) 推荐(0)