10.13闲话
困困困。
今天感觉咋啥也没干啊。
我怎么从 lyt 写的题里面随便抽俩都是 3400* 啊😨😨😨,什么卷王。
下午两点写完码开始卡空间,卡到四点😭😭😭,妈的。
下午还去拍照了,妈的为什么全班看到我们都在欢呼啊😨😨😨,我们不就没回过班吗😕😕😕。
拍照趣事:摄影师让高个往中间站,lyt就挑了个两边人高点的位置站了,然后就站 jimmy 旁边了(。然后想换个地方被 jimmy 拉住了一下还(。
晚上闲的没事看 OIwiki 然后闲的没事用树状数组去写平衡树板子了,但是被戴老师嘲讽耳朵龙好久之前就做过了😥😥😥,被吊打了😭😭😭
闲。不知道该干啥,题也不想写,新东西也不知道学啥,感觉很无聊,每天就这么浑浑噩噩的过去了啊。
晚上发现 jimmy 在看 HZOIer 的洛谷账号/jk
推歌:NEO WINGS -SOUND HOLIC feat. Nana Takahashi
维塔长得好像二小姐/yiw
CF1548E
我们进行一个钦定代表元。我们钦定一个连通块的代表元为其 \(a_i+b_j\) 最小的那一个。我们只需要对这个代表元计数即可。
我们考虑一个点如何成为代表元。只有可能是 \(a_i+b_j\) 更小的点与其不连通。我们固定 \(j\),考虑 \(a\) 如何让它和更小的不连通。我们设 \(la_i\) 为 \(i\) 左侧第一个小于等于它的位置,\(ra_i\) 为 \(i\) 右侧第一个小于等于它的位置,那么 \(la_i, ra_i\) 和 \(i\) 不能连通,也就是 \(\min(\max_{j=la_i}^i a_i, \max_{j=i}^{ra_i}a_i)+b_j>x\),我们记前面那堆为 \(ma_i\),同理我们对 \(b\) 也做相同的事情,就能得到一个点 \((i, j)\) 成为代表元的条件:\(a_i+b_j\le x, ma_i+b_j>x, a_i+mb_j>x\)。直接二维数点,树状数组即可。
时间复杂度 \(O(n\log n)\)。
图图: