有没有大佬看是哪里错了!!!
查看原帖
有没有大佬看是哪里错了!!!
1148832
LabmemNo_012LzTopic楼主2024/5/26 21:50
#include <stdio.h>

int min(int x, int y)
{
	if (x > y)return y;
	else return x;
}

int main()
{
	int m, n, a[2005][2005], mind[2005], dp[2005] = { 0 },ans=0;
	scanf("%d%d", &m, &n);
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
	if (n == 1)
	{
		for (int j = 1; j <= m; j++)
		{
			ans += a[1][j];
		}
		printf("%d", ans);
		return 0;
	}
	for (int j = 1; j <= m; j++)
	{
		for (int i = n; i >= 1; i--)
		{
			if (i != n&&i!=1)
			{
				mind[i] = min(mind[i + 1], dp[i - 1]);
			}
			else if (i != 1)mind[i] = min(dp[i], dp[i - 1]);
			else mind[i] = mind[i + 1];
			dp[i] = mind[i] + a[i][j];
		}
	}
	ans = dp[1];
	for (int i = 1; i <= n; i++)
	{
		if (dp[i] < ans)ans = dp[i];
	}
	printf("%d", ans);
	return 0;
}
2024/5/26 21:50
加载中...