文章

24

粉丝

0

获赞

170

访问

3.6k

头像
最短路径 题解:
P1286 上海交通大学机试题
发布于2026年3月14日 10:09
阅读数 173


#include<bits/stdc++.h>
using namespace std;

const int N = 105;
const int MOD = 100000;
int fa[N];
int dist[N];
bool vis[N];

struct Edge{
    int from;
    int to;
    long long weight;
};

vector<Edge> e[N];

int find(int x){
    if(x == fa[x])
        return x;
    fa[x] = find(fa[x]);
    return fa[x];
}

void dfs(int s,long long cur_dist){
    vis[s] = true;
    dist[s] = cur_dist % MOD;
    
    for(Edge edge: e[s]){
        int v = edge.to;
        if(!vis[v]){
            int d = (cur_dist + edge.weight) % MOD;
            dfs(v,d);
        }
    }
}


int main(){
    int n,m;
    cin >> n >> m;
    for(int i = 0; i <= n-1; i++){
        fa[i] = i;
    }
    
    for(int i = 0; i < n; i++){
        dist[i] = -1;
        vis[i] = false;
    } 
    long long weight = 1;
    for(int i = 0; i < m; i++){
        int u,v;
        cin >> u >> v;
        int fx = find(u);
        ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发