QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#356610#853. Flat OrganizationStinnyWA 11ms3768kbC++231.6kb2024-03-18 03:35:572024-03-18 03:35:58

Judging History

你现在查看的是最新测评结果

  • [2024-03-18 03:35:58]
  • 评测
  • 测评结果:WA
  • 用时:11ms
  • 内存:3768kb
  • [2024-03-18 03:35:57]
  • 提交

answer

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int N = 2e3 + 7;
const int INF = 1e16 + 1337;
int to[N][N], pr[N], d[N];
bool used[N];

void solve() {
    int n;
    cin >> n;
    pair <int, int> bd = {0, 0}, sd = {INF, 0};
    for (int i = 0; i < n; i++) {
        int deg = 0;
        for (int j = 0; j < n; j++) {
            cin >> to[j][i];
            if (to[j][i] > 0)
                deg++;
        }

        bd = max(bd, make_pair(deg, i));
        sd = min(bd, make_pair(deg, i));
    }

    if (n == 2) {
        cout << "NO\n";
        return;
    }

    fill(d, d + n, INF);
    fill(used, used + n, false);
    int s = sd.second, e = bd.second;
    d[s] = 0;
    for (int i = 0; i < n; i++) {
        int u = 0, dn = INF;
        for (int v = 0; v < n; v++) {
            if (!used[v] && d[v] < dn) {
                u = v;
                dn = d[v];
            }
        }

        used[u] = true;
        for (int v = 0; v < n; v++) {
            if (d[v] > dn + to[u][v]) {
                d[v] = dn + to[u][v];
                pr[v] = u;
            }
        }
    }

    int u = e;
    vector <pair <int, int>> ans;
    while (u != sd.second) {
        if (to[pr[u]][u] != 0)
            ans.push_back({pr[u], u});
        u = pr[u];
    }

    cout << "YES\n" << ans.size() << " " << d[e] << "\n";
    for (auto& [u, v] : ans)
        cout << v + 1 << " " << u + 1 << "\n";
}

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--)
        solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3516kb

input:

1
5
0 1 0 6 11
0 0 1 6 12
2 0 0 7 12
0 0 0 0 4
0 0 0 0 0

output:

YES
2 10
2 4
4 5

result:

ok OK!

Test #2:

score: -100
Wrong Answer
time: 11ms
memory: 3768kb

input:

100
5
0 1 0 6 11
0 0 1 6 12
2 0 0 7 12
0 0 0 0 4
0 0 0 0 0
1
0
2
0 0
7 0
2
0 1000000000
0 0
3
0 0 5
6 0 0
0 7 0
3
0 4 6
0 0 0
0 1 0
3
0 4 0
0 0 0
6 3 0
3
0 0 0
10 0 6
3 0 0
3
0 1999999998 1999999999
0 0 1999999998
0 0 0
50
0 105800 801 1800 64800 0 259200 288801 72201 12801 125000 20001 28801 33800 ...

output:

YES
2 10
2 4
4 5
YES
0 0
NO
NO
YES
0 0
YES
1 4
1 2
YES
0 0
YES
1 6
2 3
YES
1 1999999999
1 3
YES
0 0
YES
0 0
YES
1 236
1 18
YES
3 844
3 8
1 41
14 21
YES
0 0
YES
0 0
YES
2 644
4 17
43 19
YES
1 462
12 35
YES
0 0
YES
4 1547
27 26
26 19
19 39
24 12
YES
2 955
35 7
7 50
YES
0 0
YES
2 1236
32 44
49 10
YES
3...

result:

wrong answer Test 7: The resulting graph is not strongly connected