10分求调!
查看原帖
10分求调!
1378097
zjinyi楼主2025/1/13 16:37

各种颜色都有……

#include <iostream>
using namespace std;

long long r, c;
long long a[102][102];
long long ans[502][502];
long long dx[4] = {1, -1, 0, 0};
long long dy[4] = {0, 0, 1, -1};

long long ski(long long x, long long y)
{
	if (ans[x][y] != 0)
	{
		return ans[x][y];
	}
	if (x < 1 || x > r || y < 1 || y > c)
	{
		return 0;
	}
	for (int i = 0; i < 4; ++i)
	{
		int xx = x + dx[i], yy = y + dy[i];
		if ((a[xx][yy] < a[x][y]) && (xx < 1 || xx > r || yy < 1 || yy > c))
		{
			ans[xx][yy] = ski(xx, yy);
			ans[x][y] = max(ans[x][y], ans[xx][yy] + 1);
			return ans[x][y];
		}
	}
}

int main()
{
	cin >> r >> c;
	long long maxn = 0;
	for (long long i = 1; i <= r; ++i)
	{
		for (long long j = 1; j <= c; ++j)
		{
			cin >> a[i][j];
		}
	}
	if (r == 1 && c == 1)
	{
		cout << 0;
		return 0;
	}
	for (long long i = 1; i <= r; ++i)
	{
		for (long long j = 1; j <= c; ++j)
		{
			maxn = max(maxn, ski(i, j));
		}
	}
	cout << maxn;
	return 0;
}
2025/1/13 16:37
加载中...