A[洛谷P2163].给定平面上若干个点,多次询问给定矩形内的点数。
B[洛谷P3810].给定若干个三元组,对所有\(k\),求这样三元组的个数:恰有\(k\)个三元组,满足其每个分量都不超过它的相应分量。
C[洛谷P3157].给定一个序列,从中依次删去某些元素,求每次删除前逆序对数目。
D[CF762E/CF1045G].给定若干三元组\((x_i,r_i,f_i)\),求满足\(|x_i-x_j|\le \min(r_i,r_j)\)且\(|f_i-f_j|\le k\)的无序对\((i,j)\)数目。
E[CF641E].维护一个带时间戳的multiset,要求在某时刻插入/删除某个数,询问某个数的个数。
F[洛谷P4390].维护一个平面,单点修改,矩形查询。
G[洛谷P4093].给定一个序列,可能发生若干种修改中的至多一种,修改形如将某个数改为某个值。求在所有情况下都是单调不减子序列的最长子序列。
H[洛谷P2487].给定两个序列,求一个最长的下标序列,使得其在两个序列都单调递减。在所有这样的序列中等概率取一个,求包含某个位置的概率。
I[洛谷P4027].给定两种金券在\(n\)天内的单价及初始钱数,每一天可以将所有的钱兑换两种金券(两种金券的比例给定),或者卖掉所有金券。求\(n\)天后的最大钱数。
J[洛谷P3206].给定一棵树,边有权,给定若干次修改某条边的权,求每次修改后的最小生成树边权和。
K[CF848C].给定一个序列,单点修改,询问某段区间中所有数最后一次出现位置减去第一次出现位置的值的和。
A离线询问,用二维前缀和转化,然后按照横坐标顺序加点和处理询问。
B是CDQ分治模板,用树状数组维护。
C将时间看作一位,还是模板。也可以用分块。
D先按照\(r\)排序,然后用双指针处理\(x\),用树状数组处理\(f\)。
E直接用CDQ分治,开桶统计即可。
F用CDQ分治,中间使用A题思路。
G考虑DP,记录每个位置原始值\(a_i\),最小可能值\(b_i\),最大可能值\(c_i\),则\(dp_i=max\{dp_j\}+1\),其中\(j \le i,a_j \le b_i,c_j \le a_i\),用CDQ分治优化转移即可。
H和G类似。
I列出转移方程(很容易)后斜率优化,也用CDQ分治维护。
J对操作序列CDQ分治,处理每段序列时,将不会影响的边先处理——加入某些必选入最小生成树的边,然后缩点。用一个按秩合并的可撤销并查集维护。
K树套树,转化为对满足\(l \le i \le r,nxt_i \le r\)的所有\(i\)求\(nxt_i - i\)之和。