1. 程式人生 > >hdu 1249 N個三角形把平面分成幾個區域

hdu 1249 N個三角形把平面分成幾個區域

查詢的內容:/*每條邊最多與前面已畫的(n—1)個三角形的各兩條邊相交,第n個三角形每條邊最多與2*(n-1)條邊相交。對於每條邊,它所截出的區域(不算第n個三角形的角)有2*(n-1)-1個,於是3條邊可截出6*(n-1)-3個區域,再加上3個角即可多出6*(n-1)個區域。能新增加6(n-1)部分。因為1個三角形時有2部分,所以n個三角形最多將平面分成的部分數是 2+6×[1+2+…+(n—1)]*/

查詢的計算方法有1,、a[1]=2;a[2]=8;

                                a[i]=a[i-1]+(i-1)*6;

                             2、sum=3*n*(n-1)+2;

一、解題主要在於公式,sum=3*n*(n-1)+2;只是一個重要的計算公式,

二、如果這個公式忘記,只有一點點的推導了,就可以用遞推公式,a[1]=2;a[2]=8;a[i]=a[i-1]+(i-1)*6,個人認為遞推很難,我就對數字不敏感,所以,對於我來說只能靠記憶一些公式。

三、sum=3*n*(n-1)+2;

四、ycyy

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