关注
#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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
24938次浏览 174人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
373962次浏览 2298人参与
# 我的求职总结 #
502578次浏览 7004人参与
# 腾讯工作体验 #
642079次浏览 3875人参与
# 27届实习投递记录 #
101088次浏览 1014人参与
# 摸鱼被leader发现了怎么办 #
206188次浏览 935人参与
# 实习的内耗时刻 #
239920次浏览 1655人参与
# 今年秋招哪家公司给的薪资最良心? #
486823次浏览 2597人参与
# 你后悔选择现在的专业吗 #
126433次浏览 715人参与
# 春招开局,你有保底offer吗? #
146038次浏览 696人参与
# 秋招投简历越早越好吗 #
117587次浏览 858人参与
# 你遇到过哪些神仙同事 #
146410次浏览 776人参与
# 材料专业可以靠半导体脱坑吗? #
41564次浏览 156人参与
# 金融财会交流会 #
153155次浏览 504人参与
# 如何看待应届生身份? #
257205次浏览 2361人参与
# 24届硬件人与华为的爱恨情仇 #
162583次浏览 1014人参与
# 牛客AI体验站 #
31350次浏览 444人参与
# AI岗位暴涨12倍,你会转AI赛道吗? #
25891次浏览 213人参与
# 秋招提前批启动你开冲了吗 #
194221次浏览 2260人参与
# 滴!实习打卡 #
858456次浏览 6887人参与

神州信息成长空间 150人发布