可能是省选退役前的最后一次
前两题水的吧
后面四题我貌似都跟题解不一样。。
首先让点
让点
然后一直旋转,每次让距离下一个端点比较近的点移动到下一个端点
令
感觉它说不定可以二分
如果一次移动使
如果能做到两边
复杂度
特判
剩下的质数都是奇数
枚举右端点,枚举区间长度,发现左端点是隔着一个的连续的
就是说把点按奇偶分类后左端点是一个连续的区间
维护前缀和
卡卡常就过了
考虑询问时枚举比较小的集合,在大的集合里
那么如果对大于根号的集合两两求出答案,询问就是根号的
对于合并集合操作
如果合并后大于根号的话是要更新跟所有大于根号的集合的答案的
此时如果原来就大于根号的话是可以直接用原来信息的
如果原来小于根号的话就暴力枚举,
复杂度还是
现在问题就是支持合并两个集合,
考虑用类似线段树合并的方法合并值域分块
就是把分块看成三层线段树的话,第二层暴力合并,叶子只有在两个都非空的时候合并
复杂度
可能因为常数比标算大,卡常后才能过。
后缀数组水题
假如是一个字符串的话
枚举每个后缀
设长度为
它的贡献就是长度在
小于
大于
多个串是类似的
复杂度为
其实就是跟题解一个证法
就是存在
(