void dijkstra(int s) {
memset(dis, 0x3f, sizeof(dis));
memset(dis2, 0x3f, sizeof(dis2));
memset(vis, 0, sizeof(vis));
priority_queue <node> que;
que.push(node(s, 0));
dis[s] = 0;
while(!que.empty()) {
node fr = que.top(); que.pop();
for(int p = 0; p < gra[fr.to].size(); p++) {
int v = gra[fr.to][p].to, w = gra[fr.to][p].val, fuck = fr.val + w;
if(dis[v] > fuck) {
swap(dis[v], fuck);
que.push(node(v, dis[v]));
}
if(dis2[v] > fuck && dis[v] < fuck) {
dis2[v] = fuck;
que.push(node(v, dis2[v]));
}
}
}
}
次短路 dij 好像是这样写的,反正是 A 了,但是由于没有维护 vis 所以理论上来说应该是能卡掉得 w
所以是这玩意儿卡不掉还是理论上能卡?如果能卡怎么卡?qwq?
如果这是个在大佬眼里很傻逼的问题,这就删帖 qwq