解决了
```
for (int i=0;i<G[u].size();i++)
{
int v=G[u][i].v,w=G[u][i].w;
if (d[v]>d[u]+w)
d[v]=d[u]+w;
pq.push({d[v],v});
}
```
问题在这,应该是pq.push({-d[v],v})
优先队列是大根堆 权值变成负数push就变成从小到大排 即为小跟堆
by KongY11 @ 2024-04-16 20:24:33
这是因为我是用的pair才会出现这种情况
你也可以用struct重载运算符就不用添负号
by KongY11 @ 2024-04-16 20:27:21