关注
华为笔试题目第三题怎么了?我在自己电脑测试根本没有错误呀?这是我的代码,求指教??
#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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一次找实习,我建议__ #
10559次浏览 133人参与
# 如果今天是你的last day,你会怎么度过? #
42490次浏览 279人参与
# 联影求职进展汇总 #
95810次浏览 483人参与
# 秋招暂停,我将对以下公司做出处罚__ #
19459次浏览 81人参与
# 四大天坑是哪四家? #
88537次浏览 227人参与
# 从mentor身上学到了__ #
10646次浏览 153人参与
# 如果有时光机,你最想去到哪个年纪? #
60821次浏览 833人参与
# 你听到的“最没用”的秋招建议 #
15943次浏览 182人参与
# 2025秋招体验点评 #
39134次浏览 387人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
3207次浏览 17人参与
# 非技术岗简历怎么写 #
258829次浏览 3093人参与
# 工作以后,你父母对你啥态度 #
7100次浏览 70人参与
# 什么样的公司千万别去 #
10244次浏览 86人参与
# 机械人的保底公司是哪一家? #
43259次浏览 139人参与
# 小红书取消大小周 #
78709次浏览 180人参与
# 你遇到过哪些神仙同事 #
120614次浏览 753人参与
# 选完offer后,你后悔学机械吗? #
45901次浏览 257人参与
# 薪资要看总包还是月薪? #
13036次浏览 141人参与
# 实习生的蛐蛐区 #
833066次浏览 4036人参与
# 秋招签约后的心态变化 #
103641次浏览 917人参与
# 机械人值得去的半导体企业 #
31000次浏览 179人参与

深信服公司福利 759人发布