X-man

导航

hdu 折线分割平面(递推)

题解:

 首先我们考虑直线的情况:

当n=1时原来的1个平面被分割成了2个;
当n=2时原来的2个平面被分割成了4个;
当n=3时原来的4个平面被分割成了7个;
也就是说F(n)=F(n-1)+n且n=0时F(0)=1;
推出公式
F(n)=(1+2+3+....+n)+F(0)=(1+n)*n/2+1;

好那我们考虑折线。这个折线可以看做两条直线相交分割成4个平面。
但是由于是折线所以每个折线会损失2个平面。
也就是
F(n)=(1+2n)*2n/2+1-2n;

#include<stdio.h>
int main()
{
    int _case,n;
    scanf("%d",&_case);
    while(_case--)
    {
        scanf("%d",&n);
        printf("%d\n",2*n*n-n+1);
    }
    return 0;
}

 




posted on 2013-07-25 10:09  雨钝风轻  阅读(242)  评论(0编辑  收藏  举报