1 条题解
-
1
出题人:一只书虫仔 Data&验题人:w33z
Description
给定两个长为 的序列 ,定义一个区间 是相克的当且仅当:
$$\gcd(a_l,a_{l+1},\cdots,a_r)=\text{lcm}(b_l,b_{l+1},\cdots,b_r) $$求:
- 最长的相克区间长度。
- 相克区间的数量。
,。
Solution
Subtask 1:我会暴力!暴力解决问题。
Subtask 2:我会 ST 表!暴力枚举所有区间,预处理区间 。
正解:正解是根据 分的进一步暴力解法优化而来的。让我们先固定区间的左端点 ,然后往右去寻找右端点。我们都知道,区间越大, 只会不变或者越来越小, 只会不变或者越来越大,因此如果右端点越靠近 ,那么 就会越大 就会越小,反之亦然,也就是说,我们可以通过上面这个过程去二分在 中最大满足要求的区间 的左端点和右端点,然后每一个子区间肯定都满足要求,因此第二问答案加上 即可,第一问答案与 取个 。
然后预处理区间 依然是 ST 表。
令 为值域,预处理 ,枚举左端点 + 二分 。
评价:思维代码均比较简单的简单题,给良心的出题人点赞!
- 1
信息
- ID
- 177
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 2
- 上传者