有关直线分割平面的分析
(每增加n个交点就会多出n+1个平面)
一条直线分割平面
加入的第n条直线应该与其他n-1条直线都相交并且没有三条直线共点
那么f(n) = f(n-1) + n
初始条件f(0) = 1
折线分割平面
f(n) = f(n-1) + 4 * (n-1) + 1
一个写的很棒棒的博客
HDUOJ2050详解
HDUOJ2050
Problem Description
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
Input
输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0
Output
对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。
AC代码
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int c;
cin>>c;
int num[10010];
num[1] = 2;
for(int i = 2; i <= 10000; i++)
{
num[i] = num[i-1] + 4 * (i-1) + 1;
}
while(c--)
{
int n;
cin>>n;
cout<<num[n]<<endl;
}
return 0;
}