码迷,mamicode.com
首页 > 其他好文 > 详细

Poj 2485 Highways

时间:2020-01-26 22:18:55      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:cout   break   space   注意   iostream   std   code   div   amp   

 

因为这个图比较稠密,所以用prim算法

每次选到最小边的时候判断,保存最小边里面最大的边

注意要用scanf不然会超时

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;


int main()
{
    int n;
    cin >> n;
    while (n--) {
        int m;
        scanf("%d", &m);
        int map[501][501] = { 0 };
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= m; j++) {
                scanf("%d", &map[i][j]);
            }
        }
        int max = 0;
        int pos[501] = { 0 };
        int book[501] = { 0 };
        for (int i = 1; i <= m; i++) {
            pos[i] = map[1][i];
        }
        book[1] = 1;

        for(int k=1;k<m;k++){
            int min = 99999999;
            int t = 0;
            for (int i = 1; i <= m; i++) {
                if (pos[i] < min && book[i] == 0) {
                    min = pos[i];
                    t = i;
                }
            }
            if (t == 0) {
                break;
            }
            book[t] = 1;
            if (min > max) {
                max = min;
            }
            for (int i = 1; i <= m; i++) {
                if (map[t][i] < pos[i] && book[i] == 0) {
                    pos[i] = map[t][i];
                }
            }
        }

        cout << max << endl;

    }



    return 0;
}

 

Poj 2485 Highways

标签:cout   break   space   注意   iostream   std   code   div   amp   

原文地址:https://www.cnblogs.com/Vetsama/p/12234823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!