for(int i=1;i<=M-5;i++)dis[i]=1e10;
dis[s]=0;q.push(mp(0,s));
while(q.size()){
int x=q.top().second;q.pop();
for(int i=He[x];i;i=Nx[i]){
int y=To[i],z=w[i];
if(dis[y]>dis[x]+z){
dis[y]=dis[x]+z;
q.push(mp(-dis[y],y));
}
}
}
在A处加上
if(b[x])continue;b[x]=1;就对了
按理说应该优化不了多少的吧?