关注
#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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
287005次浏览 2519人参与
# 学历or实习经历,哪个更重要 #
48902次浏览 378人参与
# 阿里云管培生offer #
4304次浏览 86人参与
# 地方国企笔面经互助 #
3463次浏览 7人参与
# 美团求职进展汇总 #
1323226次浏览 12417人参与
# 选完offer后,你后悔学本专业吗 #
18292次浏览 131人参与
# 北方华创开奖 #
25232次浏览 274人参与
# 如何一边实习一边秋招 #
990106次浏览 12628人参与
# 得物求职进展汇总 #
65540次浏览 677人参与
# 腾讯求职进展汇总 #
194808次浏览 1632人参与
# 银行笔面经互助 #
82114次浏览 872人参与
# 提前批简历挂麻了怎么办 #
145975次浏览 1942人参与
# 0offer是寒冬太冷还是我太菜 #
895391次浏览 7985人参与
# 海康威视求职进展汇总 #
397868次浏览 3403人参与
# 机械人,你在招聘流程中的企业有哪些? #
17757次浏览 186人参与
# 许愿池 #
213179次浏览 2529人参与
# 国央企薪资爆料 #
5299次浏览 39人参与
# 网申一定要掌握的小技巧 #
5242次浏览 52人参与
# 你们公司几号发工资 #
10656次浏览 99人参与
# 没有实习经历,还有机会进大厂吗 #
810556次浏览 13915人参与
# 你最想要的公司福利是? #
44622次浏览 179人参与
# 听到哪句话就代表面试稳了or挂了? #
93717次浏览 785人参与