⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1871221_ac_15ms_144k.c

📁 北大大牛代码 1240道题的原代码 超级权威
💻 C
字号:
#include <stdio.h>

int a[101][101], R, C, way[101][101], mark[101][101] = { 0 };

void search(const int r, const int c)
{
    if (r - 1 >= 0 && a[r - 1][c] < a[r][c])
    {
        if (!mark[r - 1][c])
        {
            mark[r - 1][c] = 1;
            search(r - 1, c);
        }
        if (way[r][c] < way[r - 1][c] + 1)
            way[r][c] = way[r - 1][c] + 1;
    }
   if (c - 1 >= 0 && a[r][c - 1] < a[r][c])
    {
        if (!mark[r][c - 1])
        {
            mark[r][c - 1] = 1;
            search(r, c - 1);
        }
        if (way[r][c] < way[r][c - 1] + 1)
            way[r][c] = way[r][c - 1] + 1;
    }
   if (c + 1 < C && a[r][c + 1] < a[r][c])
    {
        if (!mark[r][c + 1])
        {
            mark[r][c + 1] = 1;
            search(r, c + 1);
        }
        if (way[r][c] < way[r][c + 1] + 1)
            way[r][c] = way[r][c + 1] + 1;
    }
   if (r + 1 < R && a[r + 1][c] < a[r][c])
    {
        if (!mark[r + 1][c])
        {
            mark[r + 1][c] = 1;
            search(r + 1, c);
        }
        if (way[r][c] < way[r + 1][c] + 1)
            way[r][c] = way[r + 1][c] + 1;
    }
}

int main()
{
    int i, j, min;

    scanf("%d %d", &R, &C);
    min = 0;
    for(i = 0; i < R; ++i)
    for(j = 0; j < C; ++j)
     {
        scanf("%d", &a[i][j]);
        way[i][j] = 1;
     }
      for (i = 0; i < R; ++i)
        for (j = 0; j < C; ++j)
        {
            if (!mark[i][j])
            {
                mark[i][j] = 1;
                search(i, j);
            }
            if (min < way[i][j])
                min = way[i][j];
        }
    printf("%d\n", min);
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -