你把Dij和spfa混着用了
可以改成堆优化的spfa,这样就可以AC了
```
void Dijkstra (int s)
{
std::fill (dis+1,dis+n+1,INF);
std::priority_queue< int,std::vector <int>,cmp > q;
q.push(s);
dis[s]=0;
while (!q.empty())
{
int u=q.top();
q.pop();
vis[u]=false;
for (int i=head[u];i;i=g[i].next)
{
int v=g[i].to;
if (dis[v]>dis[u]+g[i].w)
{
dis[v]=dis[u]+g[i].w;
if(!vis[v])
{
vis[v]=true;
q.push(v);
}
}
}
}
}
```
by YitsuHolo @ 2018-11-08 21:53:33
而且你
```
if (dis[v]>dis[u]+g[i].w)
dis[v]=dis[u]+g[i].w;
q.push(v);
```
没有打括号
by YitsuHolo @ 2018-11-08 21:55:02
@[Maxtor](/space/show?uid=61667) 真的呢 还是我理解不够 谢谢大佬
by MoMake @ 2018-11-08 23:01:07