ABC136F - Enclosed Points 题解

首先感觉无从下手?考虑换一个对答案的贡献体(这是个惯用套路)(一开始是点的集合,后来我又想换成矩形,发现仍然不可做,就偏偏没有想到换成点)。

显然,点对答案的贡献就是有多少个集合生成的矩形包含这个点。知道了这个就并不是很难了。我们考虑以该点为原点建立平面直角坐标系,然后集合有两种情况:

  1. 包含该点,此时矩形显然一定包含该点,则贡献是 \(2^{n-1}\)
  2. 不包含该点。那么显然,该点被矩形包含当且仅当一、三象限都有点或二、四象限都有点。然后四个象限的点数是个二维数点问题,这是个静态的,于是可以对一维排序来降维,从而使用 BIT 1log 解决。然后你如果把两种都算上去的话,那会有一二三四象限都有点的重复情况,那这是个简单容斥,减一下即可。

也就是,设四个象限的点数分别为 \(I,II,III,IV\) 的话,那么贡献是:

\[\begin{aligned}&2^{n-1}+\\&\!\left(2^{II}-1\right)\!\left(2^{IV}-1\right)\!2^{I}2^{III}+\\&\!\left(2^{I}-1\right)\!\left(2^{III}-1\right)\!2^{II}2^{IV}-\\&\!\left(2^{II}-1\right)\!\left(2^{IV}-1\right)\!\left(2^{I}-1\right)\!\left(2^{III}-1\right)\end{aligned} \]

然后就做完了,复杂度线性对数。

code

posted @ 2020-11-27 22:41  ycx060617  阅读(114)  评论(3编辑  收藏  举报