#include<cstdio>
#include<iostream>
#include<cmath>
#include<queue>
#include<cstring>
using namespace std;
int n,m,x,y,g,ans,nm,u,M,a[802],b[802],s[802],v[802],c[802];
bool p[802];
struct rec
{
int next,to;
double l;
}f[3000];
int js(int dep)
{
int num=0;
queue<int> d;
memset(v,127/3,sizeof(v));
memset(p,false,sizeof(p));
d.push(dep);
p[1]=true;
v[dep]=0;
while(!d.empty())
{
g=d.front();
d.pop();
for (int i=s[g];i;i=f[i].next)
if (v[g]+f[i].l<v[f[i].to])
{
v[f[i].to]=v[g]+f[i].l;
if (!p[f[i].to])
{
p[f[i].to]=true;
d.push(f[i].to);
}
}
p[g]=false;
}
for (int i=1;i<=n;i++)
num+=v[i]*c[i];
return num;
}
int main()
{
scanf("%d %d %d",&nm,&n,&m);
for (int i=1;i<=nm;i++)
{
scanf("%d",&x);
c[x]++;
}
for (int i=1;i<=m;i++)
{
scanf("%d %d %d",&x,&y,&u);
f[++M].l=u;
f[M].to=y;
f[M].next=s[x];
s[x]=M;
f[++M].l=u;
f[M].to=x;
f[M].next=s[y];
s[y]=M;
}
ans=2147483647;
for (int i=1;i<=n;i++)
ans=min(js(i),ans);
printf("%d",ans);
}
by chenjunfeng0704 @ 2019-01-26 11:56:12
隔壁偷盗的60分代码
by chenjunfeng0704 @ 2019-01-26 11:56:46
@[chenjunfeng0704](/space/show?uid=167413) 干什么
发无意义内容是吧
小心我通知管理
by Meatherm @ 2019-01-26 11:57:33
@[chenjunfeng0704](/space/show?uid=167413) 情况和我类似。
by 张泰来 @ 2019-03-11 23:06:31