文章

20

粉丝

0

获赞

144

访问

3.0k

头像
最短路 题解:
P1565 中国科学院大学2021年机试题
发布于2026年3月13日 17:27
阅读数 10

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

const int INF = 0x3f3f3f3f;
const int N = 105;

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

int dist[N];
bool vis[N];

vector<Edge>e[N];

void SPFA(int s){
    memset(dist, 0x3f, sizeof(dist));
    memset(vis, 0, sizeof(vis));
    dist[s] = 0;
    queue<int> q;
    q.push(s);
    vis[s] = true;

    while(!q.empty()){
        int u = q.front();
        q.pop();

        vis[u] = 0;
        if(dist[u] == INF) continue;

        for(int i = 0; i < e[u].size(); i++){
            int v = e[u][i].to;
            int w = e[u][i].weight;

            if(dist[v] > dist[u] + w){
  &...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发