Exhausted[ARC076F]
题意
$m$ 张凳子排成一列,从 $1$ 开始编号。
$n$ 个人,第 $i$ 个人能坐在不比 $l_i$ 大的凳子上,或者不比 $r_i$ 小的凳子上。
问最少有多少个人没地方坐。
$n,m\leq 2\times 10^5,l_i<r_i$
题解
还是很显然地假设先建一个二分图出来。那么根据Hall定理,最大匹配 = $|X|-\max{|W|-|N_g(W)|}$。
那么答案就是 $\max { |W|-|N_g(W)|}$。
显然 $N_g(W)$ 只需要考虑所有的 ${ [1,L] \bigcup [R,m]}$ 即可。
若 $L,R$ 固定,则$|W|=\sum{[l_i\leq L]\times [r_i\geq R]}$
把 $L$ 看做 $x$ 轴, $R$ 看做 $y$ 轴,则求 $|W|$ 相当于二维数点问题。
那么答案即为 $\max{|W|-(L+(m-R+1))}=-(L+m+1)+\max{ |W|+R}$
枚举 $L$,将 $(l_i,r_i)$ 按 $l_i$ 排序,扫描线,用线段树维护区间加区间最值即可。
时间复杂度 $O((n+m)\log (n+m))$
程序
1 | struct node{ |