关注
第三题,简单的最短路,看下数据不大,用的简单的 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
相关推荐
05-21 22:02
宝鸡文理学院 Java 点赞 评论 收藏
分享
06-30 15:54
湖北文理学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
10607次浏览 260人参与
# 软开人,秋招你打算投哪些公司呢 #
100116次浏览 939人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
20547次浏览 176人参与
# 实习,不懂就问 #
21921次浏览 330人参与
# 你觉得现在还能进互联网吗? #
3484次浏览 85人参与
# 如何准备秋招 #
7256次浏览 124人参与
# 每个月的工资都是怎么分配的? #
10763次浏览 218人参与
# 秋招什么时候开投比较合适? #
4506次浏览 88人参与
# 技术岗笔试题求解 #
75182次浏览 974人参与
# 预测一下26届秋招形势 #
17066次浏览 174人参与
# 打工人的精神状态 #
52815次浏览 956人参与
# 机械实习一天多少钱合适? #
28474次浏览 176人参与
# 高考出分的那一天,我__ #
12425次浏览 192人参与
# 牛客十周岁生日快乐 #
144642次浏览 1609人参与
# 安利/避雷我的专业 #
75715次浏览 522人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
111789次浏览 788人参与
# 你们公司几号发工资 #
18596次浏览 115人参与
# 来聊聊你认为的薪资天花板是哪家? #
30566次浏览 174人参与
# 设计人如何选offer #
116667次浏览 728人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61885次浏览 493人参与
# 聊聊你的职场新体验 #
160930次浏览 1389人参与