#5120: 為什麼快不了


popular10347 (ICPC// 哪時能唸到高等演算法T^T)

學校 : 元智大學
編號 : 11351
來源 : [1.169.118.99]
最後登入時間 :
2012-10-29 00:22:54
d389. 11069 - A Graph Problem -- UVa11069 | From: [192.168.1.112] | 發表日期 : 2011-05-18 16:24

各位大大們好啊!

以下是我這一題的code

#include<iostream>
using namespace std;

int main()
{
 int n;
 int vertex[77][77];
 while(scanf("%d",&n) == 1)
 {
    if(n == 1)
      printf("1\n");
    else if(n ==2 || n == 3)
      printf("2\n");
    else if(n == 4)
      printf("3\n");
    else
    {
       for(int i=1;i<=n;i++)
      {
          if(i-2<=0)
         {   
              vertex[i][i+2]=1;
              vertex[i][i+3]=1;

          }

         else
        {
              int count_way=0;
              if(i+2<=n)
             {
                  if(i-2>0)
                      count_way+=vertex[i-2][i];
                  if(i-3>0)
                      count_way+=vertex[i-3][i];
                  vertex[i][i+2]=count_way;
                  count_way=0;
            }
    
            if(i+3<=n)
          {
                if(i-2>0)
                   count_way+=vertex[i-2][i];
               if(i-3>0)
                   count_way+=vertex[i-3][i];
              vertex[i][i+3]=count_way;
          }
      }
    }

      cout << vertex[n-3][n-1]+vertex[n-4][n-1]+vertex[n-2][n]+vertex[n-3][n] << endl;
  }
 }

 return 0;
}

想請教各位高手一下,為什麼時間沒辦法更快?

是哪裡可以改善?還是有其他想法可以分享一下嗎? 謝謝!!

 

 
ZeroJudge Forum