#T1134. 最长路线

最长路线

题目背景

第十四届蓝桥STEMA青少年组2022年10月C++组第5题

题目描述

有一个 NMN*M 的矩阵,且矩阵中每个方格中都有一个整数0整数100(0≤整数≤100),小蓝需要按照以下要求从矩阵中找出一条最长的移动路线,且输出最长路线的长度(1个方格为1个长度)。

要求:

  1. 小蓝可以从矩阵中任意一个方格开始向它的上、下、左、右相邻的任意一个方格移动,且移动的路线不能有交叉;
  2. 小蓝每次所要移动到的方格中的整数都要小于当前所在方格中的整数(如当前所在的方格中的整数为3,那么可以移动到数字为 0,1,2 的格子里,不可以移动到数字为 3,4,5... 的格子里)。

例如:N = 3,M = 3,矩阵方格如下:

1 1 3

2 3 4

1 1 1

最长路线为 43214 \rightarrow 3 \rightarrow 2 \rightarrow 1,故路线长度为 4。

输入格式

第一行输入两个正整数 NM1N10001M1000N,M(1<N≤1000,1<M≤1000),N 表示矩阵的行数,M 表示矩阵的列数,两个正整数之间以一个空格隔开。

第二行开始输入 N 行,每行包含 M 个整数0每个整数100(0≤每个整数≤100),表示每个方格中的整数,每个整数之间以一个空格隔开。

输出格式

输出一个整数,表示最长路线的长度。

样例 #1

样例输入 #1

3 3
1 1 3
2 3 4
1 1 1

样例输出 #1

4