随笔分类 -  分块

摘要:传送门 分块 对每个块维护一个 $add$ 和 $del$ 标记,对于块 $o$ 内某个位置 $i$,它真实的修改量为 $a[i]+add[o]*i-del[o]$ 这样就可以维护一个区间加一个等差数列的操作了 对于操作 $2$,交换两个位置,直接把两个位置的块标记下传,然后直接交换 对于操作 $1 阅读全文
posted @ 2019-09-09 08:03 LLTYYC 阅读(202) 评论(0) 推荐(0)
摘要:传送门 子任务 $4$ 告诉我们可以离线搞带权并查集 从大到小枚举询问,从大到小连边 如果没有修改操作就可以过了 但是有修改,考虑最暴力的暴力,搞可撤销并查集 同样先离线,从大到小处理询问时,按原边权从大到小枚举到一条边时,如果他一直都没有修改,那么直接加入并查集 如果有修改那先不要加,枚举所有修改 阅读全文
posted @ 2019-08-16 07:56 LLTYYC 阅读(204) 评论(0) 推荐(0)
摘要:传送门 变一下题目的式子,变成 $A[i]+A[k]=2A[j],i<j,k>j$ 发现 $A[i]$ 的值域不大,考虑移动指针 $pos$ 并维护 $cntl[],cntr[]$ 分别表示 $pos$ 左右两边各种值的数的数量 设 $ans[i]$ 表示当前 $pos$ 左右两边各取一个数,相加为 阅读全文
posted @ 2019-07-27 14:10 LLTYYC 阅读(237) 评论(0) 推荐(0)
摘要:传送门 $N$ 太大了主席树过不了 考虑分块 对每个块内的元素排序,询问就对大块二分查找,对两边小的部分暴力枚举 修改时维护 $add[i]$ 标记,维护当前块内整块已经加的数 那么整块的就直接修改 $add$ ,两边小的部分就把那两个的块暴力修改然后重新排序 然后注意一下边界就完了 阅读全文
posted @ 2019-03-24 11:34 LLTYYC 阅读(270) 评论(0) 推荐(0)
摘要:传送门 A的第一道黑题... 然而感觉跟 作诗 没什么差别... 分块 记录 sum[ i ] [ j ] 表示从左端点到第 i 块时,数字 j 的出现次数 f [ i ] [ j ] 表示第 i 块到第 j 块的区间里的众数 对两边小段的每个数都计算贡献 设 cnt [ j ] 表示 j 在两边小 阅读全文
posted @ 2018-10-15 10:33 LLTYYC 阅读(194) 评论(0) 推荐(0)
摘要:传送门 分块 设sum[ i ] [ j ] 存从左边到第 i 块时,数字 j 的出现次数 f [ i ] [ j ] 存从第 i 块,到第 j 块的一整段的答案 那么最后答案就是一段区间中几块整段的答案加上两边小段的贡献 考虑两边小段的影响,对于每一个出现的数 它可能会使答案增加(使原本大区间中出 阅读全文
posted @ 2018-10-14 10:32 LLTYYC 阅读(165) 评论(0) 推荐(1)