文章

38

粉丝

56

获赞

67

访问

4.1k

头像
北邮2019 最短路径 题解:爆改floyd,在板子的基础上加了标记边是否被删除的数组,遇到被删的边则跳过
P1655 北京邮电大学2019年机试题
发布于2025年3月5日 18:09
阅读数 86

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

#define INF 0x3f3f3f3f
const int maxn = 105;
const int maxm = 10005; // 假设m的最大值为10000
int mpt[maxn][maxn];
int n, m;

struct node {
    int a, b, c;
} road[maxm]; // 扩大数组大小以容纳更多边

bool deleted[maxm]; // 标记边是否被删除

void floyd() {
    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                mpt[i][j] = min(mpt[i][j], mpt[i][k] + mpt[k][j]);
            }
        }
    }
}

int main() {
    int a;
    cin >> a;
    while (a--) {
        memset(deleted, 0, sizeof(deleted)); // 重置删除标记
        int z;
        cin >> n >> m >> z;
     ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发