hdoj-2050-折线分割平面

直线:

条数

最多交点数

平面数

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>折线分割平面(解析,直线,平行线,折线,三角形)



 

代码:

//算法:递推
//f(n)=f(n-1)+((2*(n-1)+1)*2-1)

 1 #include<stdio.h>
 2 int main()
 3 {
 4     __int64 a[10010];
 5     int i;
 6     a[1]=2;a[2]=7;
 7     for(i=3;i<10001;i++)
 8         a[i]=a[i-1]+((2*(i-1)+1)*2-1);
 9     int n;
10     scanf("%d",&n);
11     while(n--)
12     {
13         int k;
14         scanf("%d",&k);
15         printf("%I64d\n",a[k]);
16     }
17     return 0;
18 }

 

 

 

 

posted @ 2013-07-03 10:14  nylg-haozi  阅读(191)  评论(0编辑  收藏  举报