int dijkstra()
{
memset(dist, 0x3f, sizeof dist);//给dist初始化最大值
dist[1] = 0;
for (int i = 0; i < n - 1; i ++ )
{
bool flag = false;//标志此次循环,第一个最短点是否确定
int t;
for (int j = 1; j <= n; j ++ ){
if (!st[j] && flag == false)//找到了第一个未确定的点,初始化t
{ t = j;
flag=true;}
if (!st[j] && dist[t] > dist[j])//如果有比t小的点,就替换t
t=j;}
for (int j = 1; j <= n; j ++ )
dist[j] = min(dist[j], dist[t] + g[t][j]);
st[t] = true;
}