24h購物| | PChome| 登入
2009-11-10 21:42:31| 人氣910| 回應0 | 上一篇 | 下一篇

NOIP 2008 提高组 NOIP 2008 3.傳紙條

推薦 0 收藏 0 轉貼0 訂閱站台

作法 : DP

有更好的3維作法  請大家自行搜尋

/***********************************************************/

#include<stdlib.h>
#include<stdio.h>
int N,M;
int map[51][51];
short f[51][51][51][51];
main()
{
    scanf("%d %d",&N,&M);
       {
           int a,b,c;
           for(a=1;a<=N;a++)
               for(b=1;b<=M;b++)
                  scanf("%d",&map[a][b]);
           int i,j,x,y;
           for(i=1;i<=N;i++)
              for(j=1;j<=M;j++)
                 for(x=1;x<=N;x++)
                    for(y=1;y<=M;y++)
                        {
                          int MAX;
                          MAX=(f[i-1][j][x-1][y]>f[i-1][j][x][y-1])?f[i-1][j][x-1][y]:f[i-1][j][x][y-1];
                          MAX=(MAX>f[i][j-1][x][y-1])?MAX:f[i][j-1][x][y-1];
                          MAX=(MAX>f[i][j-1][x-1][y])?MAX:f[i][j-1][x-1][y];
                         f[i][j][x][y]+=map[i][j]+MAX;                              
                          if(i!=x||j!=y)
                             f[i][j][x][y]+=map[x][y];
                        }
           printf("%d\n",f[N][M][N][M]);
       }
  return 0;
}
/*
f[i][j][x][y]表示第一路到(i,j),第二路到(x,y)的好心度最大值。
*/

台長: 來源不明
人氣(910) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 資訊競賽 |
此分類下一篇:93全國資訊學科能力決賽 3. 黑白影像的四分樹表示法
此分類上一篇:95高市資訊學科能力競賽 關燈

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文