艺术就是派大星


私信TA

用户名:202074501103

访问量:391

签 名:

等  级
排  名 5934
经  验 1418
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 烟台大学
专  业

  自我简介:

TA的其他文章


#include<bits/stdc++.h>

using namespace std;

int n, s, dis[55], scan[55], node[55][55], num, cur, inf = 1e5;

int findNext(){

    int loc = -1, minDis = -1;

    for(int i = 0;i < n; i++){

        if(scan[i]) continue;

        if(minDis == -1) minDis = dis[i], loc = i;

        else {

                if(minDis > dis[i]) minDis = dis[i], loc = i;

        }

    }return loc;

}

int main() {

    for(int i = 0; i < 55; i++) dis[i] = inf;

    cin >> n >> s;

    for(int i = 0; i < n; i++)

        for(int j = 0; j < n; j++){

                cin >> num;

                node[i][j] = num;

        }dis[s] = 0;

    for(int cnt = 1; cnt < n; cnt++){ 

        if((cur = findNext()) == -1) break;

        scan[cur] = 1;

        for(int i = 0; i < n; i++){

             if(node[cur][i] == 0) continue;

            dis[i] = min(dis[i], node[cur][i] + dis[cur]);

        }

    }

    for(int i = 0; i < n; i++){

        if(i == s) continue;

        if(dis[i] == inf) cout << -1 << ' ';

        else cout << dis[i] << ' ';

    }cout << "\n";

    return 0;

}


 

0.0分

4 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区