zoukankan      html  css  js  c++  java
  • poj 1088 滑雪 动态规划

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    
    struct node
    {
        int x,y;
        int h;
    }b[510*510];
    
    int cmp(node n1,node n2)
    {
        return n1.h<n2.h;
    }
    
    int main()
    {
    
        int x,y,ans,cnt,i,j,r,c,t,d[510][510],a[510][510];
        while(~scanf("%d%d",&r,&c))
        {
            cnt=0;
            memset(a,0,sizeof(a));
            for(i=1;i<=r;i++)
                for(j=1;j<=c;j++)
                {
                    scanf("%d",&t);
                    b[cnt].x=i;
                    b[cnt].y=j;
                    b[cnt].h=t;
                    cnt++;
                    a[i][j]=t;
                    d[i][j]=1;
                }
            sort(b,b+cnt,cmp);
            for(i=0;i<cnt;i++)
            {
                x=b[i].x;
                y=b[i].y;
                if(a[x][y]<a[x-1][y]) d[x-1][y]=max(d[x-1][y],d[x][y]+1);
                if(a[x][y]<a[x+1][y]) d[x+1][y]=max(d[x+1][y],d[x][y]+1);
    
                if(a[x][y]<a[x][y-1]) d[x][y-1]=max(d[x][y-1],d[x][y]+1);
                if(a[x][y]<a[x][y+1]) d[x][y+1]=max(d[x][y+1],d[x][y]+1);
            }
            ans=0;
            for(i=1;i<=r;i++)
                for(j=1;j<=c;j++)
                    ans=max(ans,d[i][j]);
            printf("%d
    ",ans);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    Linux下SSH的Log文件路径
    Linux下压缩与解压命令tar
    Linux命令之at
    Linux下nice/renice命令小结
    Linux命令详解nice
    LVM---动态调整磁盘容量
    VT100字体
    Linux命令之WC
    for name in loop Shell
    Bind9用view配主从
  • 原文地址:https://www.cnblogs.com/xryz/p/4847766.html
Copyright © 2011-2022 走看看