usacoJAN2021 C P

考虑平面图的euler公式:(V-E+F=1+C)
(V)是好算的。
(E)可以把边分成横/竖后进行二维前缀和。
(F)就有点难算。
考虑给每个区域连通块任取一个点作为关键点。
用二维前缀和计算区域内关键点个数,设为(G)
发现如果关键点在矩形内,则该矩形一定会和连通块相交。
然而可能有一些连通块和外面的无穷平面相连,要减去。
枚举矩形边界上的每一条边,设一(vis)数组。
如果边界上标号为(v)的连通块,(vis_v=0),则把(vis_v)赋值为(1)(G--)
接下来就不用重复计算了。
时间复杂度(O(nm+q(n+m)))

原文地址:https://www.cnblogs.com/ctmlpfs/p/14494114.html