55 pts 实在调不动了,WA on #3#4#6#8#9,求调,玄关
查看原帖
55 pts 实在调不动了,WA on #3#4#6#8#9,求调,玄关
833737
Lyw_and_Segment_Tree楼主2024/12/9 23:58

code :

#include<bits/stdc++.h>
#define endl "\n"
using namespace std;
const long long inf = LLONG_MAX;
const long long maxn = 5e6 + 5;
long long n, m, k, s, t, tot;
long long dis[maxn], h[maxn], to[maxn], val[maxn], nxt[maxn]; bool vis[maxn];
struct node {
    long long v, w;
    friend bool operator < (node a, node b) {
        return a.w > b.w;
    }
} tmp;
priority_queue<node> q;
void add(long long u, long long v, long long w) {
    tot++;
    to[tot] = v;
    val[tot] = w;
    nxt[tot] = h[u];
    h[u] = tot;
}
void Dijkstra(long long s) {
    for(long long i = 0; i <= n; i++) dis[i] = inf, vis[i] = false;
    dis[s] = 0;
    tmp.v = s, tmp.w = 0;
    q.push(tmp);
    while(!q.empty()) {
        long long u = q.top().v;
        q.pop();
        if(vis[u]) continue;
        vis[u] = 1;
        for(long long i = h[u]; i; i = nxt[i]) {
            if(dis[to[i]] > (long long) dis[u] + val[i]) {
                dis[to[i]] = dis[u] + val[i];
                tmp.w = dis[to[i]];
                tmp.v = to[i];
                q.push(tmp);
            }
        }
    }
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    memset(h, -1, sizeof(h));
    cin >> n >> m >> k >> s >> t; s++, t++;
    for(long long i = 1; i <= m; i++) {
        long long u, v, w; cin >> u >> v >> w; u++, v++;
        add(u, v, w), add(v, u, w);
        for(long long j = 1; j <= k; j++) {
            add(u + j * n, v + j * n, w), add(v + j * n, u + j * n, w);
            add(u + (j - 1) * n, v + j * n, 0), add(v + (j - 1) * n, u + j * n, 0);
        }
    }
    for(long long j = 1; j <= k; j++) {
        add(t + (j - 1) * n, t + j * n, 0);
    }
    Dijkstra(s); long long ans = LLONG_MAX;
    for (long long i = 0; i <= k; i++) {
        ans = min(dis[t + i * n], ans);
    }
    cout << ans << endl;
}

感觉思路没有任何问题,代码上也找不出什么毛病,但总是提示我 read 0, excepted ...,也就是说 WA 的点 ans 全是 0,希望有巨佬能帮忙看看

2024/12/9 23:58
加载中...