随笔分类 - 主席树
摘要:题意: 给定长度为n的序列和q次询问。每次询问给出一个区间(L,R),求出区间内每个数第一次出现位置的中位数,强制在线。 题解: 用主席树从右向左的插入点。对于当前点i,如果a[i]出现过,则把原位置-1,i处+1。这样保证了每个点只出现1次。 对于询问区间(L,R),求出L节点[L,R]的值即为区
阅读全文
摘要:题意: 长度为N的序列,初始时间戳为0,有M次操作。 C l r d:代表区间[l, r]的数加d,当前时间戳加1. Q l r:代表输出当前时间戳内[l, r]的区间和. H l r t:代表输出时间戳为t时[l, r]的区间和. B t:代表把时间戳置为t. 题解: 先初始化一棵带lazy线段树
阅读全文
摘要:题意: 给出一个长度为N的序列。M次操作,Q代表询问区间的第K大值,C代表修改一个位置的数。输出每次询问的第K大值。 题解: 修改第i个位置的数会影响i~n。所以可以用树状数组维护每次修改。树状数组的每个节点代表一棵树,统计结果时对应位置相加即可。 #include <bits/stdc++.h>
阅读全文