关注
#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;
}
查看原帖
点赞 评论
相关推荐
程序员牛肉:不用,你低估你学历的含金量了。
不用学微服务,重心放到juc,redis和mysql的八股上。然后准备两个简历项目。直接准备明年暑期就好。南京大学都算是国内比较顶尖的985了。明年暑期零实习也能被约面。不用太焦虑 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得面试是靠实力还是靠运气 #
26916次浏览 290人参与
# 哪些公司在招寒假实习? #
19745次浏览 257人参与
# MiniMax求职进展汇总 #
919次浏览 23人参与
# 秋招遇到的奇葩面试题 #
103076次浏览 421人参与
# 卷__卷不过你们,只能卷__了 #
13818次浏览 311人参与
# 互联网行业现在还值得去吗 #
49329次浏览 362人参与
# 26年哪些行业会变好/更差 #
21166次浏览 311人参与
# 写论文的崩溃时刻 #
7587次浏览 168人参与
# 秋招暂停,我将对以下公司做出处罚__ #
50164次浏览 200人参与
# 去年的flag与今年的小目标 #
11284次浏览 223人参与
# 通信硬件公司爆料 #
186649次浏览 548人参与
# 你不能接受的企业文化有哪些 #
14007次浏览 193人参与
# 有深度的简历长什么样? #
18096次浏览 368人参与
# 你都用AI做什么 #
7719次浏览 179人参与
# 入职第一天 #
11316次浏览 246人参与
# 关于春招你都做了哪些准备? #
122345次浏览 709人参与
# 国企vs私企,你更想去? #
306296次浏览 2494人参与
# 硬件/芯片公司工作体验 #
141955次浏览 939人参与
# 找工作中的小确幸 #
75638次浏览 439人参与
# 大家实习都在做什么? #
16644次浏览 224人参与
# 招聘要求与实际实习内容不符怎么办 #
149309次浏览 887人参与