[Leaf] [ABC439D] Kadomatsu Subsequence
abc439d---kadomatsu-subsequence">ABC439D - Kadomatsu Subsequence
1. 核心逻辑
-
模型抽象: 给定序列 ,统计满足特定比例关系或代数性质的三元组 数量,且要求 同时位于 的同侧。
-
破局路径:
-
枚举支点: 固定中间元素 ,题目要求 都在 左侧或都在 右侧。
-
动态统计: 维护两个计数器(如
map),分别记录当前扫描点左侧 (cntl) 和右侧 (cntr) 的权值频率。 -
贡献结算: 扫描到 时,预计算满足条件的 对应的权值 和 ,其贡献为
cntl[ii] * cntl[kk] + cntr[ii] * cntr[kk]。
-
-
细节处理: 注意数据范围,乘法结算需使用
long long防止溢出。
2. 代码实现
▶
AcCode
1 | |
3. 复盘
-
复杂度: ,瓶颈在于
map的维护。 -
灵感反思: 贡献度拆解。通过将全局三元组计数转化为以 为分割点的局部计数,并利用扫描过程动态维护
cntl和cntr,实现了复杂度的降维。 -
关联知识点: 降维技巧
[Leaf] [ABC439D] Kadomatsu Subsequence
http://miqiu.space/posts/d9d9e338/