现在的位置: 首页 > 综合 > 正文

HDU 2050 折线分割平面

2018年04月29日 ⁄ 综合 ⁄ 共 1068字 ⁄ 字号 评论关闭

 关于线分平面的知识,大概是我们在初中和高中的时候做的最多的了,但是怎么样彻底的掌握这些知识呢?这些知识没有一点难度,只不过就是考虑个递推然后打表查表输出值就行了,所以,对于这谢问题,我结合网站上的资料对他们进行了汇总,大家以后凡是遇到这种类型的题目就可以直接用公式了,不要问公式是怎么推理出来的QAQ,自己脑补吧

直线:

条数

最多交点数

平面数

1

0

2

2

1

f(1)+2

3

2

f(2)+3

4

3

f(3)+4

n

n-1(该条数的直线前面的直线总条数)

f(n-1)+增加的平面数=f(n-1)++(交点数+1)=f(n-1)+((n-1)+1)

 

 

 

 

 

 

 

 

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)

 

 

 

平行线:

对数

条数

最多交点数

平面数

1

2

0

3

2

4

4=2*2

f(1)+6=f(1)+3*2

3

6

8=4*2

f(2)+10=f(2)+5*2

4

8

12=6*2

f(3)+14=f(3)+7*2

n

2*n

单条直线交点数*2=该对平行线前的直线总条数*2=(2*(n-1))*2

f(n-1)+单条直线增加的平面数*2=f(n-1)+(交点数+1)*2=f(n-1)+(2*(n-1)+1)*2

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)

 

 

 

折线:

折线数

所含直线数

最多交点数

平面数

1

2

0

2

2

4

4=2*2

f(1)+5=f(1)+(2*3-1)

3

6

8=4*2

f(2)+9=f(2)+(2*5-1)

4

8

12=6*2

f(3)+13=f(3)+(2*7-1)

n

2*n

单条直线交点数*2=该对平行线前的直线总条数*2=(2*(n-1))*2

f(n-1)+(单条直线增加的平面数*2-1)=f(n-1)+((交点数+1)*2-1)=f(n-1)+((2*(n-1)+1)*2-1)

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)

 

 

 

三角形

个数

交点数

增加的平面个数

分割平面总数

1

0

1

2

2

2*3

3*3-3

f(1)+3*3-3

3

4*3

5*3-3

f(2)+5*3-3

4

6*3

7*3-3

f(3)+7*3-3

n

(n*2-2)*3

(2*n-1)*3-3

f(n-1)+(2*n-1)*3-3=f(n-1)+6*(n-1)

 

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)



代码:


# include<cstdio>
# include<iostream>

using namespace std;

# define MAX 12345

int a[MAX];

void dabiao()
{
    a[0] = 0;
    a[1] = 2;
    a[2] = 7;
    for ( int i = 3;i < MAX;i++ )
    {
       a[i]=a[i-1]+(2*(i-1)+1)*2-1;

    }
}


int main(void)
{
    dabiao();
    int t;cin>>t;
    while ( t-- )
    {
        int n;cin>>n;
        cout<<a[n]<<endl;
    }



    return 0;
}



抱歉!评论已关闭.