ABC396 题解集合
__vector__ · · 题解
A
暴力枚举就可以了。
B
注意到删除操作最多
先进先出,队列维护。
C
显然在已经确定选择的球的数量的情况下,优先选择大的。
首先将黑色白色分别降序排列。
然后,枚举白色球选择的数量
把
D
这道题无法使用状压 dp,原因在于无法将所需要的所有状态加入。
但是注意到
一个简单的实现是
E
考虑在
注意到每一位都是独立的,并且由于异或的性质,同一个连通块只要有一个点的某一位翻转,连通块内所有其他节点的这一位也都需要翻转。
找到所有的连通块,对于每个连通块,随便找一个起始节点将其赋值为
根据这个数量决定每一位是否翻转即可。
F
考虑任意一对数造成的贡献。
- 对于
\forall i \lt j,a_i \lt a_j :
会对k \in [m-a_j,m-a_i) 造成+1 的贡献。 - 对于
\forall i \lt j,a_i \gt a_j : 会对k \in [0,m-a_i),[m-a_j,m] 造成1 的贡献。
把包含
归类完之后可以转化为若干个区间加,最后统一查询一遍就可以。
G
这里