while(!q.empty()){
int u=q.top().id;
q.pop();
if(vis[u]) continue;
vis[u]=1;
for(int i=hd[u];i;i=e[i].nxt){
int to=e[i].v;
if(dis[to]>dis[u]+e[i].w){
dis[to]=dis[u]+e[i].w;
q.push(node{dis[to],to});
}
}
}
对于这样一份优先队列优化的dij,vis数组在有向无环图是不是可以舍去,只存在正环可以舍去吗,可以判断负环吗