暴力算法 遍历每一条路记录最小血量
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int n,m;
vector<int> dp;
void solve(vector<vector<int>> &map, int x, int y, int last, int min_step)
{
if(x == n - 1 && y == m-1)
{
dp.push_back(min(min_step, map[x][y]+last));
return;
}
int current = map[x][y]+last;
if(x<n -1 )
{
solve(map, x+1, y, current, min(min_step, current));
}
if(y<m -1)
{
solve(map, x, y+1, current, min(min_step, current));
}
}
int main() {
cin >> n >> m;
vector<vector<int>> map(n,vector<int>(m,0));
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
cin>>map[i][j];
}
}
solve(map, 0,0,0,map[0][0]);
sort(dp.begin(), dp.end());
if(dp.back()>=1)
{
cout<<1;
}
else {
cout<<1-dp.back();
}
return 0;
}


京公网安备 11010502036488号