【图论】MT1069 圆切平面
题目描述:n个圆最多把平面分成几部分?输入圆的数量N,问最多把平面分成几块。比如一个圆以把一个平面切割成2块。 不考虑负数,0或者其他特殊情况。
思路:
任意两个圆相交最多有2个交点,n个圆就有2*C(n,2)=n(n-1)个交点。
每个圆上有2(n-1)个交点,因此圆被分割成了2(n-1)段,n个圆就有2n(n-1)段。
由欧拉公式,V+F-E=2,(要包含最外的平面)
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n,ans = 0;
scanf("%I64d",&n);
ans = n * (n - 1) + 2;
printf("%-I64d",ans);
return 0;
}
Keep it simple and stupid