dijkstra $ O(n^2) $
cpp
void dijk(){
memset(d,0x3f,sizeof d);
memset(vis,0,sizeof vis);
d[1]=0;
for(int i=1;i<=n;i++){
int x=0;
for(int j=1;j<=n;j++){
if(!vis[j]&&(x==0||d[j]<d[x]))x=j;
}
vis[x]=1;
for(int y=1;y<=n;y++){
d[y]=min(d[y],d[x]+a[x][y]);
}
}
}