void dij()
{
memset(dis, 0x3f, sizeof dis);
memset(vis, 0, sizeof vis);
dis[1] = 0;
for(int i = 1; i < n; i++)
{
int x = 0;//当前dis最小的点
for(int j = 1; j <= n; j++)
if(!vis[j] && (x == 0 || dis[j] < dis[x])) x = j;
vis[x] = 1;
for(int j = 1; j <= n; j++)
dis[j] = min(dis[j], dis[x] + g[x][j]);
}
}
asdfasdfasdfas
于 2023-12-22 11:15:12 首次发布