警示后人
查看原帖
警示后人
820807
SafariMo楼主2024/8/17 16:28

虽然我过了这题(900+ms)。但是我的 DIJ 算法在其他地方被卡了。

如果你的 dij 是这么写的:

while(){
 vis[x] = 1;
 ...
 if(!vis[y]) q.push(y);
}

可能你的队列是这样的

…x,y,z,x,y,z,x,y,z…\dots x,y,z,x,y,z,x,y,z\dots 。

每个 x,y,zx,y,z 都会被执行一遍,然后套娃。

这样复杂度可能退化成 O(n2log⁡n)\mathcal O(n^2\log n) 的。

2024/8/17 16:28
加载中...