@[__Shine__](/user/552610) minn初始值设为1e9
by _Haoomff_ @ 2023-07-14 15:40:19
@[_Haoomff_](/user/368111) 改为1e9后输出1e9
by __Shine__ @ 2023-07-14 15:44:26
@[__Shine__](/user/552610) 在改变minn值之前判断一下
```cpp
if(head[i])
```
by _Haoomff_ @ 2023-07-14 15:46:39
@[_Haoomff_](/user/368111) 还是不行额awa
by __Shine__ @ 2023-07-14 15:48:26
@[__Shine__](/user/552610) 你自己对着看看吧,我跟你的代码也不一样,我还用了个结构体
```cpp
inline void add(int u,int v,int w){
V[++edgenum]=v;
W[edgenum]=w;
Next[edgenum]=Head[u];
Head[u]=edgenum;
}
struct node{
int u,dist;
node(){}
node(int u,int dist):u(u),dist(dist){}
friend bool operator<(const node &a1,const node &a2){
return a1.dist<a2.dist;
}
friend bool operator>(const node &a1,const node &a2){
return a2<a1;
}
};
void Dijkstar(int Start){
memset(dist,0x3f,sizeof(dist));
memset(vis,0,sizeof(vis));
dist[Start]=0;
priority_queue<node,vector<node>,greater<node> > q;
q.push(node(Start,0));
for(;!q.empty();){
int u=q.top().u;
q.pop();
if(vis[u])continue;
vis[u]=true;
for(int e=Head[u];e;e=Next[e]){
int v=V[e],w=W[e];
if(!vis[v]&&dist[u]+w<dist[v]){
dist[v]=dist[u]+w;
q.push(node(v,dist[v]));
}
}
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>k>>n>>m;
for(int i=1;i<=k;++i)cin>>cow[i];
for(;m--;){
int u,v,w;
cin>>u>>v>>w;
add(u,v,w);
add(v,u,w);
}
int ans=1e9;
for(int i=1;i<=n;++i){
Dijkstar(i);
int sum=0;
for(int j=1;j<=k;++j)sum+=dist[cow[j]];
if(Head[i])ans=min(ans,sum);
}
cout<<ans;
return 0;
}
```
by _Haoomff_ @ 2023-07-14 15:51:20
666 李浩源gg666
by __Li_Chuan_Pei__ @ 2023-07-31 08:55:34