RE求调:是溢出了吗
查看原帖
RE求调:是溢出了吗
784825
KrisXJ楼主2024/4/19 19:58
#include <bits/stdc++.h>  
  
using namespace std;  
  
const long long MAXN = 1e9+10;  
const int INF = 99999999;  
  
int main() {  
    long long n, m, s;  
    cin >> n >> m >> s; 
  
    long long e[MAXN][MAXN], dis[MAXN];  
    bool book[MAXN];  
    memset(book, 0, sizeof(book));  
    for (int i = 0; i < n; ++i) {  
        for (int j = 0; j < n; ++j) {  
            e[i][j] = INF;
        }  
        dis[i] = INF; 
    }  
    dis[s - 1] = 0; 
  
    int u, v, w;  
    for (int i = 0; i < m; ++i) {  
        cin >> u >> v >> w; 
        e[u - 1][v - 1] = w;  
    }  
  
    for (int i = 0; i < n - 1; ++i) {  
        int _min = INF, u_min;  
        for (int j = 0; j < n; ++j) {  
            if (!book[j] && dis[j] < _min) {  
                _min = dis[j];  
                u_min = j;  
            }  
        }  
        u = u_min;  
        book[u] = true;  
        for (int v = 0; v < n; ++v) {  
            if (e[u][v] != INF) {  
                if (dis[v] > dis[u] + e[u][v]) {  
                    dis[v] = dis[u] + e[u][v];  
                }  
            }  
        }  
    }  
  
    for (int i = 0; i < n; ++i) {  
        cout << dis[i] << " "; 
    }  
    cout << endl;  
  
    return 0;  
}
2024/4/19 19:58
加载中...