分割平面题解

分割平面


题目描述
设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三 条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。

在这里插入图片描述

输入格式
一个数n(1≤n≤46341)

输出格式
一个数,这些曲线把平面分割成的个数总和

样例
样例输入
3
样例输出
8


精髓:

当前平面的个数等于前一个图形平面的个数加上新增的平面的个数。

前一个平面的个数就是a[n-1]。新增的平面的个数恰好是上一图椭圆数量的两倍,也就是2*(n-1)

所以递推式就是:a[i]=a[i-1]+2*(i-1);

参考代码:

#include<cstdio>
int main() {
	int n;
	long long a[46345]={0,2};
	scanf("%d",&n);
	for(int i=2;i<=n;i++) {
		a[i]=a[i-1]+2*(i-1);
	}
	printf("%d",a[n]);
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章