程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> hdu 1249 三角形 (DP)

hdu 1249 三角形 (DP)

編輯:C#入門知識

1:
可以畫一個圓,圓裡放一個內正三角形。當放入第二個時,我們就把它轉化為把已有的第一個三角形圍著同心軸稍微往右轉一點點(向左轉一樣的),那麼,第二個三角形的每一條邊都會與第一個三角形的其中兩條邊相交,這樣就可得3*1*2+2個區域,3表示3條邊,1表示第二個三角形的每一條邊都會與第一個三角形的其中兩條邊相交後得到一個三角形,2表示2個三角形,+2則表示外面的區域和同有的2個三角形共有的一個區域。同樣第三個三角形會與第一第二個三角形都有兩條邊相交。可得:3*2*3+2
         由些可得,n個三角形:3*(n-1)*n+2
2:
遞推公式:a[i]=a[i-1]+(i-1)*6
[csharp] 
#include"stdio.h" 
int a[10010]; 
int main() 

    int i,t,n; 
    a[1]=2;a[2]=8; 
    for(i=3;i<=10000;i++) 
        a[i]=a[i-1]+2*(i-1)*3; 
    scanf("%d",&t); 
    while(t--) 
    { 
        scanf("%d",&n); 
        printf("%d\n",a[n]); 
    } 
    return 0; 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved