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))\)