关注
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
vector<vector<int> > map;
int maxf = INT_MIN;
vector<pair<int,int>> shortesresult;
/*
To find the path with least cost;
Move left or right costs 1
Move Up costs 3
Move down costs 0
input:
4 4 10 // n m p p is total allowed cost
1 1 1 1
1 1 1 1
0 0 0 1
0 0 1 1
*/
bool dfs(int x,int y,int n,int m,int
p,vector<pair<int,int>> &result){
if(p <= 0){
return false; //
}
if(x == 0 and y == m){
result.push_back({x,y});
for(auto &p : result){
//cout << '[' << p.first <<
"," << p.second << ']';
}
//cout << p << endl;
if(p > maxf){
shortesresult = result;
maxf = p;
}
result.pop_back(); // bug!!!!!!
return true;
}
if(x < 0 || y < 0 || x > n || y > m ){
return false;
}
if(map[x][y] <= 0){
return false;
}
//cout << x << " " << y
<< " " << p << endl;
result.push_back({x,y});
map[x][y] = -1;
bool r1 = dfs(x + 1,y,n,m,p,result);
bool r2 = dfs(x,y + 1,n,m,p - 1,result);
bool r3 = dfs(x,y - 1,n,m,p - 1,result);
bool r4 = dfs(x - 1,y,n,m,p - 3,result);
result.pop_back();
map[x][y] = 1;
return false;
}
int main(){
int n,m,p,tmp;
cin >> n >> m >>p;
map = vector<vector<int>
>(n,vector<int>(m,0));
for(int i = 0; i < n; i ++){
for(int j = 0;j < m;j ++){
cin >> tmp;
map[i][j] = tmp;
}
}
vector<pair<int,int>> result;
bool isFirst = true;
dfs(0,0,n-1,m-1,p,result);
if(shortesresult.size() != 0){
for(auto &p : shortesresult){
if(!isFirst){
cout << ',';
}
cout << '[' << p.first << ","
<< p.second << ']';
isFirst = false;
}
}else{
cout << "Can not escape!" << endl;
}
cout << endl;
}
查看原帖
点赞 评论
相关推荐
破双非转码er:广工上电视了
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# offer帮选 #
4800390次浏览 29149人参与
# 实习,不懂就问 #
134306次浏览 1243人参与
# 百融云创求职进展汇总 #
367次浏览 0人参与
# 校招薪资来揭秘 #
342968次浏览 1889人参与
# 实习要如何选择和准备? #
125704次浏览 1476人参与
# OC/开奖 #
280034次浏览 1744人参与
# 2025年终总结 #
18056次浏览 267人参与
# 国企和大厂硬件兄弟怎么选? #
138450次浏览 1671人参与
# 硬件兄弟们 甩出你的华为奖状 #
117785次浏览 701人参与
# 移动求职进展汇总 #
15709次浏览 125人参与
# 第一份工作能做外包吗? #
87943次浏览 586人参与
# 毕业租房也有小确幸 #
148274次浏览 4525人参与
# uu们,春招你还来吗? #
16520次浏览 111人参与
# 记录实习开销 #
169499次浏览 661人参与
# 为了去实习,我赌上了___ #
24066次浏览 219人参与
# 秋招暂停,我将对以下公司做出处罚__ #
43084次浏览 177人参与
# 生物制药的同学已经投递多少份简历了 #
14677次浏览 52人参与
# 面试紧张时你会有什么表现? #
16429次浏览 135人参与
# 高薪高压 vs 低薪wlb,你怎么选? #
14792次浏览 159人参与
# 软开人,秋招你打算投哪些公司呢 #
168573次浏览 1282人参与
# Offer比较,你最看重什么? #
241571次浏览 1487人参与
