比赛 NOIP2023模拟赛2 评测结果 TTEEEEEEEE
题目名称 旅行者 最终得分 0
用户昵称 黄天乐 运行时间 8.965 s
代码语言 C++ 内存使用 387.62 MiB
提交时间 2023-11-14 10:30:17
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int g[10005][10005];
int n,m,k,t;
int ma[10005];
void f(){
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(i!=j&&i!=k&&j!=k){
                   g[i][j]=min(g[i][j],g[i][k]+g[k][j]); 
                }
            }
        }
        
    }
}
int main(){
    freopen("WAW.in","r",stdin);
    freopen("WAW.out","w",stdout);
    cin>>t;
    while(t>0){
        t--;
        cin>>n>>m>>k;
        memset(g,0x3f,sizeof(g));
        for(int i=1;i<=m;i++){
            int u,v,w;
            cin>>u>>v>>w; 
            g[u][v]=min(g[u][v],w);
        }
        for(int i=1;i<=k;i++){
            cin>>ma[i];
        }
        int ans=2e9;
        f();
        for(int i=1;i<=k;i++){
            for(int j=1;j<=k;j++){
                ans=min(ans,g[ma[i]][ma[j]]);
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}