关注
第三题,简单的最短路,看下数据不大,用的简单的 Floyd算法 就可以过(AC) PS:之前发的贴不知道为什么删除了,本着赛后互相分享,互相讨论的初衷,没啥违规的吧
== 参考代码:
#include <string.h>
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1005;
const int INF = 99999999;
int map[maxn][maxn], dist[maxn];
bool visit[maxn];
int N,P,C;
void init() //初始化
{
int i, j;
for(i = 0; i < maxn; i++)
{
for(j = 0; j < maxn; j++)
{
if(i == j)
map[i][j] = 0;
else
map[i][j] = map[j][i] = INF;
}
}
}
void input() //输入函数
{
int vi, vj, cost;
while(P--)
{
scanf("%d %d %d", &vi, &vj, &cost);
if(cost < map[vi][vj])
map[vi][vj] = map[vj][vi] = cost;
}
}
void floyd() //Floyd算法
{
int i, j, k;
for(k = 0; k <=N; k++) //k为中间点
for(i = 0; i <= N; i++)
for(j = 0; j <= N; j++)
if(map[i][k] + map[k][j] < map[i][j])
map[i][j] = map[i][k] + map[k][j];
}
int main()
{
// freopen("in.txt","r",stdin);
while(cin>>N>>P>>C)
{
init();
input();
floyd();
int sum = 0;
for(int i=0; i<C; ++i)
{
int v;cin>>v;
sum+=map[0][v];
}
printf("%d\n", sum);
}
return 0;
}
查看原帖
点赞 5
相关推荐
点赞 评论 收藏
分享
淬月星辉:全靠面完自己回忆的,有很多细节都没写进去,真实面试要比帖子里问的详细
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
2694次浏览 47人参与
# 春节提前走,你用什么理由请假? #
3219次浏览 62人参与
# 春节前,你还在投简历吗? #
4954次浏览 57人参与
# 实习到现在,你最困惑的一个问题 #
973次浏览 30人参与
# 备战春招/暑实,现在应该做什么? #
1004次浏览 34人参与
# 从夯到拉,锐评职场mentor #
997次浏览 23人参与
# 聊聊Agent开发 #
10653次浏览 263人参与
# 距离春招还有一个月,你现在是什么开局? #
2322次浏览 41人参与
# 推荐一个值得做的AI项目 #
3001次浏览 90人参与
# 牛友的春节生活 #
773次浏览 26人参与
# 暑期实习什么时候投? #
2849次浏览 58人参与
# 通信硬件2024笔试面试经验 #
268999次浏览 2053人参与
# 最难的技术面是哪家公司? #
65321次浏览 971人参与
# 实习想申请秋招offer,能不能argue薪资 #
218172次浏览 1167人参与
# 一份好的简历长什么样? #
25328次浏览 448人参与
# 我想象的实习vs现实的实习 #
320859次浏览 2287人参与
# 实习必须要去大厂吗? #
188345次浏览 1765人参与
# 双非本科的出路是什么? #
208441次浏览 1563人参与
# 我的AI电子员工 #
26868次浏览 161人参与
# 运营面经 #
155736次浏览 1344人参与
OPPO公司福利 1173人发布