这种码风要不要改?
  • 板块灌水区
  • 楼主Cyric
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/7/28 16:20
  • 上次更新2024/7/28 17:41:36
查看原帖
这种码风要不要改?
986463
Cyric楼主2024/7/28 16:20

各位神犇,这种码风算简洁吗

#include <iostream>
#include <queue>
#include <cstring>

struct {
    int to, edgeWeight,next;
}edge[500005];
int head[10005], counter, distance[10005], s, n, m;

void addEdge(int u, int v,int edgeWeight) {
    edge[++counter].to = v;
    edge[counter].edgeWeight = edgeWeight;
    edge[counter].next = head[u];
    head[u] = counter;
}

void SPFA() {
    memset(distance, 0x7f, sizeof(distance));
    distance[s] = 0;
    std::queue<int> q;
    q.push(s);
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (int i = head[u];i != 0;i = edge[i].next) {
            int v = edge[i].to, w = edge[i].edgeWeight;
            if (distance[v] > distance[u] + w) {
                distance[v] = distance[u] + w;
                q.push(v);
            }
        }
    }
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    std::cin >> n >> m >> s;
    while (m--) {
        int u, v, weight;
        std::cin >> u >> v >> weight;
        addEdge(u, v, weight);
    }
    SPFA();
    for (int i = 1;i <= n;i++)(distance[i] == 0x7f7f7f7f || distance[i] == 0) && i != s ? std::cout << "2147483647 " : std::cout << distance[i] << ' ';
    return 0;
}

就随便贴了以前写的SPFA

2024/7/28 16:20
加载中...