HDU2050 折线分割平面【递推】【计算几何】

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2050

题目大意:

求N条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线

最多可以将平面分成7部分,具体如下所示。

思路:

直线分割平面时,每增加N个结点,增加N+1个面。设f(N)是N条直线所能分成最多个面的个数。

则f(N) = f(N-1) + N,且f(1)= 2,推得:f(N) = N*(N+1)/2+1。当N为折线节点时,

L(N) = f(2*N) - 2*N。因为每增加1个折线,增加两个直线,这是f(2*N),每多1个顶点,比直线

就少两个面,这是2*N。最后的结果为L(N) = 2*N*N - N + 1。

AC代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

int main()
{
    int T,N;
    cin >> T;
    while(T--)
    {
        cin >> N;
        cout << 2*N*N - N + 1 << endl;
    }

    return 0;
}
时间: 2024-10-16 06:56:07

HDU2050 折线分割平面【递推】【计算几何】的相关文章

hdu2050 折线分割平面---递推

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2050 题目大意: 求n条折线分割平面的最大数目 思路: 先看n条直线的时候 一条直线 2个平面 两条直线 4个平面 三条直线 7个平面 四条直线 11个平面 设n条直线的时候,平面数目为f(n),当有n-1条直线时,平面最多被分成了f(n-1)个区域.则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点.这样就会得到n-1个交点.这些交点将第n条直线分为2条射线和n-2条线段.而

hdu 2050 折线分割平面 (递推)

折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15709    Accepted Submission(s): 10836 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面

[hdu-2050] 折线分割平面

折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15796    Accepted Submission(s): 10897 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平

hdu2050 折线分割平面

2n条直线划分平面总数为2n^2+n+1: 除去4n条边和2n个顶点后变成n条折线,由欧拉公式可得面数减少2n,即2n^2-n+1: #include<math.h> #include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { int t,n; long long f[20001]; f[0]=1; for(int i=1; i<20001; i++) f[i]=f[

折线分割平面(图形递推题)

hdu 折线分割平面 (2050) Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示. Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(n大于0且n<=10000),表示折线的数量. Output 对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行. Samp

折线分割平面(递推)

折线分割平面 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示. Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量. Output 对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行. Sample Input 2 1

HDU2050离散数学折线分割平面

折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24505    Accepted Submission(s): 16644 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面

D - 折线分割平面

Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示.  Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量. Output 对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行. Sample Input 2 1 2 Sample Outpu

折线分割平面(杭电2050)(递归的几种类型,数学推导)

折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17706    Accepted Submission(s): 12192 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平