ZOJ 2589 欧拉公式
题意:
给定平面上的N个圆,问整个平面被分成了几个部分。
题解:
欧拉公式。欧拉公式好多啊,偶像啊!!~
( 欧拉公式 ) 设 G 是连通的平面图,n , m, r 分别是其顶点数、边数和面数,则n – m + r = 2
证:对边数 m 作数学归纳法。
当 m =0 时,因 G 是连通图,所以 G 只能是平凡图,结论显然成立。
假设当 m =k 时,结论成立。下面证明 m =k+1 的情况。
若 G 是树,则 G 至少有两片树叶。设 v 是 G 的一片树叶。令G=G - v ,则G
仍是连通图,且G
的边数m
=m - 1=k ,由归纳假设知,n
–m
+ r
= 2,而n
=n - 1, r
=r, 于是
n – m + r = (n+ 1) – (m
+ 1) + r
= n
- m
+ r
= 2 。
若 G 不是树,则 G 中含有圈。设边 e 在 G 的某个圈上。令G=G - e ,则G
仍是连通图,且G
的边数m
=m -1=k ,由归纳假设知n
–m
+ r
= 2, 而n
=n , r
=r - 1 ,于是
n–m + r = n– (m
+ 1) + (r
+ 1) =n
–m
+ r
= 2。
证毕。
( 欧拉公式的推广形式 ) 对于具有 k (k ≥ 1) 个连通分支的平面图 G ,有 n – m + r = k+1 。
证 设 G 的连通分支分别为 G 1 , G 2, …, G k ,并设 G i 的顶点数、边数和面数分别为 n i , m i, r i 。由欧拉公式可知
暴力求圆的交点,然后去重的话,貌似set可以做,不过对set还不太熟悉。回头学吧~
没有人能阻止我前进的步伐,除了我自己!