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



 

代码:

//2012.2.3
//寒假练习
//算法:递推
//f(n)=f(n-1)+((2*(n-1)+1)*2-1)
//解析整理于http://blog.sina.com.cn/s/blog_83ccc39d0100z3l9.html
#include<iostream>
using namespace std;
int
 main()
{

    int
 c,n,i;
    int
 f[10001]={0,2,7};
    for
(
i=2;i<10001;i++)
    {

        f[i]=f[i-1]+(2*(i-1)+1)*2-1;
    }

    cin>>c;
    while
(
c--)
    {

        cin>>n;
        cout<<f[n]<<endl;
    }

    return
 0;
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值