我需要找到矩阵底部的路径,并且在所有四个方向上的总和必须最小,但是我还需要显示到达那里的路径
在其他资源的帮助下,我设法得到了一些东西,但是只能向左或向上移动,我无法显示路径,只能显示总和。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int a, b; //a x b
int i, j;
a = b = 28;
int Cost[100][100]; // declaring an array of a big size
//cout<<a<<"\t"<<b<<endl;
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
cin>>Cost[i][j];
}
}
int MinCost[a][b];
MinCost[0][0] = Cost[0][0];
for(j =1;j <=b-1;j++)
{
MinCost[0][j] = MinCost[0][j-1] + Cost[0][j];
}
for(i = 1;i<= a-1;i++)
{
MinCost[i][0] = MinCost[i-1][0] + Cost[i][0];
}
for(i = 1;i<= a-1;i++)
{
for(j =1;j <=b-1;j++)
{
MinCost[i][j] = min(MinCost[i-1][j],MinCost[i][j-1]) + Cost[i][j];
}
}
cout<<"Minimum cost from (0,0) to (a,b) is "<<MinCost[a-1][b-1]<<" ";
return 0;
}
当我尝试向右和向上添加min(MinCost[i+1][j],MinCost[i][j+1])
时,代码停止工作。如何将所有4个方向相加,并显示所走的路径而不仅仅是总和?