题意:我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
思路:
先看N条相交的直线最多能把平面分割成多少块当添加第N条只显示,为了使平面最多,
再看每次增加两条相互平行的直线当第N次添加时,前面已经有2N-2条直线了,所以第N次添加时,第2N-1条直线和第2N条直线都各能增加2*(n-1)+1
如果把每次加进来的平行边让它们一头相交则平面1、3已经合为一个面,因此,每一组平行线相交后,就会较少一个面所以所求就是平行线分割平面数减去N,为2n2
感想:推导过程有些复杂,但是代码很简单~
代码:
#include<stdio.h>
int
{
__int64
scanf("%d",&T);
while(T--)
{
s[0]=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
s[i]=s[i-1]+4*(i-1)+1;
printf("%I64d\n",s[i-1]);
}
return
}