zoukankan      html  css  js  c++  java
  • 【CODEVS2152】滑雪

    Description

    trs喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。
    例如样例中的那个矩形,可以从某个点滑向上下左右四个相邻的点之一。例如24-17-16-1,其实25-24-23…3-2-1更长,事实上这是最长的一条。

    Input

    第1行: 两个数字r,c(1<=r,c<=100),表示矩阵的行列。
    第2..r+1行:每行c个数,表示这个矩阵。

    Output

    仅一行: 输出1个整数,表示可以滑行的最大长度。

    Sample Input

    5 5
    1 2 3 4 5
    16 17 18 19 6
    15 24 25 20 7
    14 23 22 21 8
    13 12 11 10 9

    Sample Output

    25

    Hint

    1s

     1 #include<iostream>
     2 using namespace std;
     3 int xx[5]={0,-1,1,0,0}; //小技巧,向四个方向搜索 
     4 int yy[5]={0,0,0,-1,1}; 
     5 int b[101][101]={0};
     6 int a[101][101]={0};
     7 int r,c;
     8 void search(int x,int y)
     9 {
    10         for (int k=1;k<=4;k++)
    11             if(x+xx[k]>0 && x+xx[k]<=r && y+yy[k]>0 && y+yy[k]<=c)
    12                 if (a[x+xx[k]][y+yy[k]]>a[x][y]) 
    13                 {
    14                     if (!b[x+xx[k]][y+yy[k]])
    15                         search(x+xx[k],y+yy[k]);
    16                     b[x][y]=max(b[x][y],b[x+xx[k]][y+yy[k]]+1);
    17                 }
    18 }
    19 int main()
    20 {
    21     cin>>r>>c;
    22     for (int i=1;i<=r;i++)
    23         for (int j=1;j<=c;j++)
    24             cin>>a[i][j];
    25     for (int i=1;i<=r;i++)
    26         for (int j=1;j<=c;j++)
    27             if (!b[i][j]) search(i,j);
    28     int maxx=0;
    29     for (int i=1;i<=r;i++)
    30         for (int j=1;j<=c;j++)
    31             maxx=max(maxx,b[i][j]);
    32     cout<<maxx+1;
    33 }
  • 相关阅读:
    用户场景分析
    团队项目个人工作总结(4月22日)
    团队项目个人工作总结(4月21日)
    团队项目个人工作总结(4月20日)
    第九周学习进度情况
    站立会议10-个人总结
    站立会议9-个人总结
    站立会议8-个人总结
    textarea中文提交乱码问题解决
    站立会议7-个人总结
  • 原文地址:https://www.cnblogs.com/liumengyue/p/5187689.html
Copyright © 2011-2022 走看看