关注
第三题,简单的最短路,看下数据不大,用的简单的 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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一次找实习,我建议__ #
21522次浏览 291人参与
# 韶音科技求职进展汇总 #
60373次浏览 505人参与
# 从mentor身上学到了__ #
18784次浏览 300人参与
# 你怎么评价今年的春招? #
142173次浏览 1388人参与
# 什么样的公司千万别去 #
16592次浏览 115人参与
# 上班摸鱼,你都在干些什么? #
31230次浏览 227人参与
# 外出实习被同学举报 #
3961次浏览 31人参与
# 你投递的公司有几家约面了? #
149636次浏览 982人参与
# 秋招的嫡长offer #
312427次浏览 1881人参与
# 秋招暂停,我将对以下公司做出处罚__ #
29550次浏览 137人参与
# 秋招结束之后的日子 #
106024次浏览 1017人参与
# 你认为工作的意义是什么 #
203280次浏览 1289人参与
# 秋招我要惩罚这些公司 #
2953次浏览 22人参与
# 打工人的至爽时刻or至暗时刻 #
41871次浏览 221人参与
# 你听到的“最没用”的秋招建议 #
20756次浏览 234人参与
# 如果今天是你的last day,你会怎么度过? #
48029次浏览 299人参与
# 面试被问期望薪资时该如何回答 #
311637次浏览 1788人参与
# 2025秋招体验点评 #
47348次浏览 480人参与
# 除了主业以外,你还有哪些其他收入? #
35175次浏览 302人参与
# 在国企工作的人,躺平了吗? #
375392次浏览 3930人参与
