关注
华为笔试题目第三题怎么了?我在自己电脑测试根本没有错误呀?这是我的代码,求指教??
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;
queue<int> que;
int d2[7][7] = {
{ 0,2,10,5,3,1000},
{ 1000,0,12,1000,1000,10},
{ 1000,1000,0,1000,7,1000},
{2,1000,1000,0,2,1000},
{4,1000,1000,1,0,1000},
{3,1000,1,1000,2,0}
};
int d[7][7];
const int INF = 1000;
int x,y;
int dist[10],p[10],in[10];
void spfa(int s){
for(int i=0;i<=5;i++){
dist[i]=INF;
p[i]=i;
}
memset(in,0,sizeof(in));
dist[s]=0;
in[s]=1;
que.push(s);
while(!que.empty()){
int u = que.front();
que.pop();
in[u]=0;
for(int i=0;i<=5;i++){
if(i==y) continue; //大雾不能到达
if(u==y) continue; //大雾不能出发
if(dist[i]>dist[u]+d[u][i]){
dist[i]=dist[u]+d[u][i];
p[i]=u;
if(in[i]==0){
in[i]=1;
que.push(i);
}
}
}
}
}
int main()
{
while(cin>>x>>y){
x--;y--;
for(int i=0;i<=5;i++){
for(int j=0;j<=5;j++){
d[i][j]=d2[i][j];
}
}
spfa(4);
if(dist[x]>=1000) dist[x]=1000;
cout<<dist[x]<<endl;
int cc[10];
int num = 0;
if(dist[x]<1000){
int cur = x;
cc[++num]=cur+1;
while(p[cur]!=cur){
cc[++num]=p[cur]+1;
cur=p[cur];
}
cout<<"[";
for(int i=num;i>1;i--){
cout<<cc[i]<<",";
}
cout<<cc[1]<<"]"<<endl;
}else{
cout<<"[]"<<endl;
}
}
return 0;
}
有人愿意和我对拍吗?通过率只有12.5%??
查看原帖
点赞 3
相关推荐
牛客热帖
更多
正在热议
更多
# 这个offer值得去吗? #
3711次浏览 68人参与
# 你实习是赚钱了还是亏钱了? #
119491次浏览 661人参与
# 联宝杯大学生创新大赛,你的技术值得产业级答案 #
43535次浏览 498人参与
# 你会因为行情,降低找工作标准吗? #
13527次浏览 150人参与
# 机械人晒出你的简历 #
191540次浏览 1104人参与
# 如果春招能重来,我会___ #
6571次浏览 75人参与
# 实习想申请秋招offer,能不能argue薪资 #
256096次浏览 1333人参与
# 刚入职的你踩过哪些坑 #
60117次浏览 417人参与
# 腾讯云智研发工作体验 #
43440次浏览 177人参与
# 招银网络求职进展汇总 #
250005次浏览 1121人参与
# 面试官拷打AI项目都会问什么? #
2772次浏览 148人参与
# 想做Agent可以做哪些岗位? #
3315次浏览 44人参与
# 你觉得最好用的AI编程工具是_ #
1372次浏览 35人参与
# 除了线上,还能去哪些地方投简历 #
4291次浏览 47人参与
# 求职你最看重什么? #
166384次浏览 907人参与
# 你的秋招白月光和意难平公司 #
98294次浏览 350人参与
# 实习第一天,你在干什么 #
4746次浏览 41人参与
# 暑假倒计时,你都干了些啥? #
58949次浏览 314人参与
# 如何一边实习一边秋招 #
2235787次浏览 19228人参与
# 如何排解工作中的焦虑 #
330503次浏览 2832人参与
# 你和你的mentor相处模式是__ #
6874次浏览 62人参与
