关注
#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;
}
查看原帖
点赞 评论
相关推荐
05-29 22:11
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届校招投递进展 #
27820次浏览 217人参与
# 小米提前批笔试难吗 #
33792次浏览 355人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
8781次浏览 104人参与
# 为了找工作你花了哪些钱? #
26948次浏览 257人参与
# 烟草笔面经互助 #
16780次浏览 180人参与
# 打工人的精神状态 #
49259次浏览 857人参与
# 大疆的机械笔试比去年难吗 #
72803次浏览 618人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61226次浏览 490人参与
# 牛友们,签完三方你在忙什么? #
98113次浏览 852人参与
# 你秋招想去哪些公司 #
21628次浏览 798人参与
# 你今年的保底offer是哪家 #
118129次浏览 537人参与
# 你觉得比亚迪今年还有春招吗? #
191138次浏览 1050人参与
# 视觉/交互/设计百问百答 #
46352次浏览 435人参与
# 秋招结束之后的日子 #
75121次浏览 909人参与
# kpi面有什么特征 #
52151次浏览 402人参与
# 机械人春招想让哪家公司来捞你? #
344412次浏览 3078人参与
# 机械人你觉得今年行情怎么样? #
1285次浏览 27人参与
# 那些我实习了才知道的事 #
210891次浏览 1721人参与
# 如何缓解入职前的焦虑 #
192216次浏览 1339人参与
# 查收我的offer竞争力报告 #
189458次浏览 1265人参与
# 为什么国企只招应届生 #
178303次浏览 1157人参与