HDU 2050折线分割的问题
2014-07-27 12:06
120 查看
首先分析直线分平面最多多少份:f(1)=2;f(2)=4;f(3)=7;f(4)=11……可知f(n)=f(n-1)+n且f(1)=2.可知f(n)=(1+n)*n/2+1;
同理,可将每个折线看成是两条直线,但是少了一半。因此每一条折线比两条直线分割的面的部分少2。因此n条折线比2n条直线分割平面形成的部分少2n。所以f(n)=(1+2*n)*2*n/2+1-2*n=2*n^2-n+1;
在分析如果不是折线,而是"Z"形线,且认为Z的上下两边平行且为射线。则最多分平面多少部分?
Z形线和3条直线很类似,但是有两条平行,这样就少了1个部分,如果再将有两条直线平行的三条直线变为Z形的话,那又将少4个部分,这样每个Z比三条直线分平面形成的部分少5个,那么n条呢?
n条Z形线将比3n条直线分平面形成的部分少5n个部分。
因此f(n)=3*n*(3*n+1)/2-5n+1=(9*n^2-7*n+2)/2。
c源程序:
#include<stdio.h>
int main()
{
int t,k;
scanf("%d",&t);
for(k=0;k<t;k++)
{
int n;
__int64 num;
scanf("%d",&n);
num=2*n*n-n+1;
printf("%I64d\n",num);
}
return 0;
}
同理,可将每个折线看成是两条直线,但是少了一半。因此每一条折线比两条直线分割的面的部分少2。因此n条折线比2n条直线分割平面形成的部分少2n。所以f(n)=(1+2*n)*2*n/2+1-2*n=2*n^2-n+1;
在分析如果不是折线,而是"Z"形线,且认为Z的上下两边平行且为射线。则最多分平面多少部分?
Z形线和3条直线很类似,但是有两条平行,这样就少了1个部分,如果再将有两条直线平行的三条直线变为Z形的话,那又将少4个部分,这样每个Z比三条直线分平面形成的部分少5个,那么n条呢?
n条Z形线将比3n条直线分平面形成的部分少5n个部分。
因此f(n)=3*n*(3*n+1)/2-5n+1=(9*n^2-7*n+2)/2。
c源程序:
#include<stdio.h>
int main()
{
int t,k;
scanf("%d",&t);
for(k=0;k<t;k++)
{
int n;
__int64 num;
scanf("%d",&n);
num=2*n*n-n+1;
printf("%I64d\n",num);
}
return 0;
}
相关文章推荐
- HDU--2050 折线分割平面问题
- HDU_2050——折线分割平面问题,递推
- X - 折线分割平面 HDU - 2050 (分割问题)
- HDU——2050——折线分割平面
- (step 3.1.5)hdu 2050(折线分割平面)
- hdu 2050 折线分割平面
- hdu 2050 折线分割平面(解析,直线,平行线,折线,三角形)
- HDU 2050 折线分割平面 (递推)
- hdu,2050,折线分割平面
- HDU 2050 折线分割平面
- HDU 2050 分割问题
- HDU 2050折线分割平面(解析,直线,平行线,折线,三角形)
- hdu 2050 折线分割平面
- hdu 2050 折线分割平面
- HDU 2050 折线分割平面
- hdu 2050 折线分割平面
- hdu 2050折线分割平面
- hdu 2050 - 折线分割平面
- hdu 2050 折线分割平面
- HDU 2050 折线分割平面