计算几何-折线分割平面andHDUOJ2050

有关直线分割平面的分析

(每增加n个交点就会多出n+1个平面)

一条直线分割平面

加入的第n条直线应该与其他n-1条直线都相交并且没有三条直线共点
那么f(n) = f(n-1) + n
初始条件f(0) = 1
等号是原来的n-1条线分的平面,+是加了第n条线之后新增的平面

折线分割平面

f(n) = f(n-1) + 4 * (n-1) + 1
这里写图片描述
一个写的很棒棒的博客
HDUOJ2050详解

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;
}

猜你喜欢

转载自blog.csdn.net/wuswi0412/article/details/80501779