UNR 1 题解
争夺圣杯
求所有 m,所有长度为 m 的区间的 max 值之和,之 xor 和。
当前在某个 i,设 p=min(i−Li,Ri−i), q=max(i−Li,Ri−i),对下面这三个区间的贡献:
- len∈[p,q]:hpi∗p
- len∈[1,p−1]:hpi∗len
- len∈[q+1,p+q−1]:hpi∗(p−(len−q))
就是加一次函数。前缀和随便做?
👇这个 sb 因为忘记取模 WA 了一发= = 所以读题要仔细啊!!!
合唱队形
n=m 时,假设总共有 p 节课,当前有 r 个人。那么拓展到 r+1 的概率就是 m−rp,期望次数是 pm−r, ans=m−1∑i=0pm−i
设 ti 表示以第 i 个人为开头的队形组成的期望时间,min-max 容斥,现在要算 max(ti)。显然答案只和课程数有关!
- n−m+1 较小时,O(n2n−m+1) 暴枚即可,就和 n=m 一样算。
- n−m+1 较大,就是说 m 比较小,可以考虑 dp:fi,j,k 表示到第 i 个人,i 前 m 个人为开头的队形选择状态为 j,有 k 个课程要教的方案数(是带 min-max 容斥系数的)
题还不错,就是做法割裂开了,有点降好感诶 = =
火车管理
区间压栈,单点弹栈,区间询问栈顶
1、3 操作一棵线段树,2 操作一棵主席树。主席树存时间,得到的时间也可以作为下标查询某位置的上一个版本。
代码咕了。
wangyisong1996 给出了一个二叉树的神仙做法,待补。