POJ 1088 滑雪,poj1088滑雪

來源:互聯網
上載者:User

POJ 1088 滑雪,poj1088滑雪

Description

Michael喜歡滑雪百這並不奇怪, 因為滑雪的確很刺激。可是為了獲得速度,滑的地區必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待升降機來載你。Michael想知道載一個地區中最長底滑坡。地區由一個二維數組給出。數組的每個數字代表點的高度。下面是一個例子 
 1  2  3  4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9

一個人可以從某個點滑向上下左右相鄰四個點之一,若且唯若高度減小。在上面的例子中,一條可滑行的滑坡為24-17-16-1。當然25-24-23-...-3-2-1更長。事實上,這是最長的一條。

Input

輸入的第一行表示地區的行數R和列數C(1 <= R,C <= 100)。下面是R行,每行有C個整數,代表高度h,0<=h<=10000。

Output

輸出最長地區的長度。

Sample Input

5 51 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9

Sample Output

25

思路:遞迴的思想,枚舉不同的點為終點,使得到達終點的路徑最長,那麼dp[i][j]=max(dp[i][j],d(不同的方向到達該位置))。

AC代碼:
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int map[105][105];int d[105][105];int r,c;int dir[4][2]={0,1,1,0,-1,0,0,-1};int dp(int y,int x){    int i;    int maxx=0,s;    if(d[y][x]!=0)return d[y][x];  //如果該點已經有值了,那麼就沒必要再遞迴了    for(i=0;i<4;i++)    {        int a=y+dir[i][0];        int b=x+dir[i][1];        if(a>=0&&a<r&&b>=0&&b<c)        {            if(map[a][b]>map[y][x])            {                s=dp(a,b);                if(s>maxx)  //轉移方程                    maxx=s;            }        }    }    d[y][x]=maxx+1;       return d[y][x];}int main(){    int i,j;    int maxx=-1;    scanf("%d %d",&r,&c);    for(i=0;i<r;i++)    {        for(j=0;j<c;j++)            scanf("%d",&map[i][j]);    }    memset(d,0,sizeof(d));    for(i=0;i<r;i++)    {        for(j=0;j<c;j++)        {            d[i][j]=dp(i,j);            if(maxx<d[i][j])                   maxx=d[i][j];        }    }    printf("%d\n",maxx);    return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.