通解:找交点个数
2026-05-27 14:53:49
发布于:北京
2阅读
0回复
0点赞
新增第 n 个图形 和 已有(n-1)个图形相交,交点 将新增第 n 个图形分成若干段,把新增第 n 个图形的每一段,想象成一把 “刀”每一段都会把原来的一个区域,切成两个区域。因此新增的区域数,等于新增第 n 个图形被交点分成的段数;而段数又等于新增第 n 个图形和已有(n-1)个图形的交点总数。递推公式:f(n)=f(n-1)+交点总数。
对于本题:
1、当有 n-1 个三角形时,平面最多被分成 f(n-1) 个区域。
2、新增第 n 个三角形时,它的每条边最多能和前 n-1 个三角形的 2 条边相交,
每条边产生 2(n-1) 个交点,3 条边共产生 6(n-1) 个交点。
3、这些交点将第 n 个三角形分成 6(n-1) 段,每一段都会新增 1 个区域,
因此递推式为:f(n) = f(n-1) + 6(n-1)
#include <bits/stdc++.h>
using namespace std;
long long a[10001]={1,2};
void init(){
for(int i=2; i<=10000; i++){
a[i]=a[i-1]+6*(i-1);
}
}
int main() {
init();
int t, n;
cin>>t;
while(t--){
cin>>n;
cout<<a[n]<<endl;
}
return 0;
}
这里空空如也







有帮助,赞一个