关注
void dfs(vector<int>& signal,vector<bool> & mask, vector<vector<int> > &path, vector<vector<int> >& matrix, int nowNode, int T,int nowTime, int & minValue){ if(nowTime >= minValue) return; if(nowNode == T){ minValue = min(minValue, nowTime); return; } int waitTime = 0; if(nowTime / signal[nowNode] % 2 == 1) { waitTime = signal[nowNode] - nowTime % signal[nowNode]; } nowTime += waitTime; mask[nowNode] = true; for(int i=0;i<path[nowNode].size();i++){ if(!mask[path[nowNode][i]]){ nowTime += matrix[nowNode][path[nowNode][i]]; dfs(signal,mask,path,matrix,path[nowNode][i],T,nowTime,minValue); nowTime -= matrix[nowNode][path[nowNode][i]]; } } mask[nowNode] = false; } int minTravelTime(int N, vector < vector < int > > intersections, int M, vector < vector < int > > roads, int s, int t) { vector<bool> mask(N,false); vector<int> signal(N,0); for(int i=0;i<N;i++){ signal[intersections[i][0]] = intersections[i][1]; } vector<vector<int> > path(N); vector<vector<int> > matrix(N,vector<int>(N,0)); for(int i=0;i<M;i++){ path[roads[i][0]].push_back(roads[i][1]); path[roads[i][1]].push_back(roads[i][0]); matrix[roads[i][0]][roads[i][1]] = roads[i][2]; matrix[roads[i][1]][roads[i][0]] = roads[i][2]; } int result = 0x7fffffff; dfs(signal,mask,path,matrix,s,t,0,result); return result; }
查看原帖
点赞 评论
相关推荐
11-21 15:10
华南农业大学 运营 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
263975次浏览 2186人参与
# 0offer是寒冬太冷还是我太菜 #
887462次浏览 7909人参与
# 北方华创开奖 #
23669次浏览 260人参与
# 地方国企笔面经互助 #
2846次浏览 7人参与
# 学历or实习经历,哪个更重要 #
43446次浏览 328人参与
# 选完offer后,你后悔学本专业吗 #
13280次浏览 94人参与
# 查收我的offer竞争力报告 #
19526次浏览 255人参与
# 应届生被毁约被毁意向了怎么办 #
28214次浏览 243人参与
# 你最想要的公司福利是? #
41876次浏览 146人参与
# 如何一边实习一边秋招 #
987394次浏览 12609人参与
# 一觉醒来,我觉醒了超级打工人系统 #
3313次浏览 36人参与
# 嵌入式转岗的难度怎么样 #
11201次浏览 251人参与
# 你最希望上岸的公司是? #
76550次浏览 469人参与
# 如何写一份好简历 #
605055次浏览 8510人参与
# 面试体验感最好的是哪家? #
83657次浏览 818人参与
# 机械应届生薪资要多少才合适? #
12542次浏览 61人参与
# 牛客十周岁生日快乐 #
48750次浏览 759人参与
# 你认为第一份工作重要吗 #
5447次浏览 49人参与
# 985本硕1个中小厂offer,摆烂or继续努力 #
79946次浏览 589人参与
# 秋招OC许愿 #
228219次浏览 1880人参与
# 来聊聊机械薪资天花板是哪家 #
65742次浏览 445人参与