关注
#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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
飞屋一号:给各ai拉个群,让他们给你打黑工 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
2038次浏览 54人参与
# 机械人你知道哪些单休企业 #
82938次浏览 413人参与
# 今年春招是金一银二嘛? #
7222次浏览 80人参与
# 没关系,至少我的__很曼妙 #
3522次浏览 62人参与
# 1月小结:你过的开心吗? #
1626次浏览 50人参与
# 赚钱的意义在这一刻具象化 #
3682次浏览 90人参与
# 抛开难度不谈,你最想去哪家公司? #
3609次浏览 91人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
7708次浏览 185人参与
# 为什么有人零实习也能进大厂? #
4559次浏览 104人参与
# 你的第一家实习公司是什么档次? #
3835次浏览 67人参与
# 你的landing期是如何度过的? #
7859次浏览 145人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
3340次浏览 120人参与
# 参加完秋招的机械人,还参加春招吗? #
103442次浏览 682人参与
# 机械人春招想让哪家公司来捞你? #
379104次浏览 3139人参与
# 除了Java,最推荐学什么技术? #
5333次浏览 136人参与
# AI求职实录 #
2766次浏览 81人参与
# 一人一道大厂面试题 #
114063次浏览 1263人参与
# 设计人如何选offer #
187053次浏览 864人参与
# 你在职场上见过哪些“水货”同事 #
30689次浏览 167人参与
# 简历中的项目经历要怎么写? #
287711次浏览 3801人参与
