比赛链接T1 一看就是整除分块的形式,如何整除分块
发现对于 ,
对应这唯一的值,暴力乘
对于 ,
的值可能有一段区间
都是这个值
而 b 的下标可以去到的值就是
就是区间 之间每割
个位置的 b 的和,发现
直接开 个数组预处理前缀和即可
T2 上玩一玩支配树就好
口胡支配树:建出一棵树,祖先支配子孙,假设当前处理到的 ,入度为 0,也就是之前能到它的已经处理好(在支配树中),然后对于一个点,能支配它的就是它到根的链,于是能支配当前点
的,就是可以到它的点在支配树上的
T3 首先有 的
,
表示到 i,
,
的
的最大值
转移枚举当前选不选就可以了
仔细观察数据范围,觉得应该是 的,然后发现
,
限制条件是相同的,于是令 表示
,
的
的最大值
如果当前不选,
如果当前选
单调队列优化即可,数组可以滚动
总结:
不错的一套题
学到了分块的重要思想,直接求的有哪些,需要预处理的有哪些
然后手玩了一下支配树
学到了通过数据范围猜状态,通过限制条件的相似性减少状态