求助 bellman-ford
查看原帖
求助 bellman-ford
529247
BLX32M_10楼主2022/4/5 13:23

1 RE

1 WA

8 AC

#include <cstdio>
#include <cstring>
int u[2505], v[2505], w[2505], dis[2505];
int main()
{
    int n, m, s, t;
    scanf("%d %d %d %d", &n, &m, &s, &t);
    for (int i = 1; i <= m; i++)
        scanf("%d %d %d", &u[i], &v[i], &w[i]);
    memset(dis, 0x3f, sizeof dis);
    dis[s] = 0;
    bool relaxed;
    for (int i = 1; i < n; i++)
    {
        relaxed = 0;
        for (int j = 1; j <= m; j++)
        {
            if (dis[v[j]] + w[j] < dis[u[j]])
                dis[u[j]] = dis[v[j]] + w[j], relaxed = 1;
            if (dis[u[j]] + w[j] < dis[v[j]])
                dis[v[j]] = dis[u[j]] + w[j], relaxed = 1;
        }
        if (!relaxed)
            break;
    }
    printf("%d", dis[t]);
    return 0;
}
2022/4/5 13:23
加载中...