QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#573325#676. Travelling Merchantmakrav0 126ms5748kbC++203.3kb2024-09-18 18:10:462024-09-18 18:10:47

Judging History

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

  • [2024-09-18 18:10:47]
  • 评测
  • 测评结果:0
  • 用时:126ms
  • 内存:5748kb
  • [2024-09-18 18:10:46]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#define all(x) (x).begin(), (x).end()
#define sz(x) (int)(x).size()
#define pb push_back
#define ff first
#define sc second
#define int ll

const int INF = 1e9 + 1;

vector<int> dijkstra(int n, vector<vector<pair<int, int>>> g, int s) {
    vector<int> dist(n, INF);
    dist[s] = 0ll;
    set<pair<int, int>> st;
    for (int i = 0; i < n; i++) st.insert({dist[i], i});
    while (!st.empty()) {
        auto [d, v] = *st.begin();
        st.erase({d, v});
        for (auto &[u, w] : g[v]) {
            if (dist[u] > d + w) {
                st.erase({dist[u], u});
                dist[u] = d + w;
                st.insert({dist[u], u});
            }
        }
    }
    return dist;
}

void solve() {
    int n, m, k; cin >> n >> m >> k;
    vector<vector<int>> b(n, vector<int>(k)), s(n, vector<int>(k));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < k; j++) {
            cin >> b[i][j] >> s[i][j];
        }
    }
    vector<vector<int>> maxprof(n, vector<int>(n));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i == j) continue;
            for (int kk = 0; kk < k; kk++) {
                //cout << i << ' ' << j << '\n';
                if (b[i][kk] != -1 && s[j][kk] != -1) {
                    maxprof[i][j] = max(maxprof[i][j], s[j][kk] - b[i][kk]);
                }
            }
        }
    }
    // for (int i = 0; i < n; i++) {
    //     for (int j = 0; j < n; j++) {
    //         cout << maxprof[i][j] << ' ';
    //     }
    //     cout << '\n';
    // }
    vector<vector<pair<int, int>>> g(n);
    for (int i = 0; i < m; i++) {
        int u, v, w; cin >> u >> v >> w;
        u--; v--;
        g[u].pb({v, w});
    }
    vector<vector<int>> dj(n, vector<int>(n));
    for (int i = 0; i < n; i++) dj[i] = dijkstra(n, g, i);

    int L = 0, R = 1e9 + 1;
    while (R - L > 1) {
        int M = (L + R) / 2;
        vector<vector<int>> d(n, vector<int>(n, INF));
        for (int i = 0; i < n; i++) d[i][i] = 0;
        //cout << M << '\n';
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (i == j) continue;
                if (dj[i][j] != INF) d[i][j] = dj[i][j] * M;
                for (int vt = 0; vt < n; vt++) {
                    if (dj[i][vt] != INF && dj[vt][j] != INF) {
                        d[i][j] = min(d[i][j], (dj[i][vt] + dj[vt][j]) * M - maxprof[vt][j]);
                    }
                }
            }
        }
        for (int K=0; K<n; ++K)
	        for (int i=0; i<n; ++i)
		        for (int j=0; j<n; ++j)
			        d[i][j] = min (d[i][j], d[i][K] + d[K][j]);
        bool loop = false;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (i == j) continue;
                if (d[i][j] + d[j][i] <= 0) loop = true;
            }
        }
        if (loop) L = M;
        else R = M;
    }
    cout << L << '\n';
}

signed main() {
    int tt = 1;
    #ifdef LOCAL 
        freopen("in.txt", "r", stdin);
        freopen("out.txt", "w", stdout);
        cin >> tt;
    #else
        ios::sync_with_stdio(false); 
        cin.tie(0); cout.tie(0);
    #endif

    while (tt--) {
        solve();
    }

    return 0;
}

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 12
Accepted
time: 95ms
memory: 5468kb

input:

100 181 1000
553730496 158361961 892706912 178296397 743382683 297380306 641674485 99624440 917350062 18856036 844421978 187895310 648680590 312745394 560991872 402321479 712754581 166489560 776432653 57402415 554268728 511597509 861517186 541462029 843246768 457630601 923371196 521104850 557772066 ...

output:

1

result:

ok single line: '1'

Test #2:

score: 12
Accepted
time: 80ms
memory: 3868kb

input:

100 100 1
1 1
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 100...

output:

0

result:

ok single line: '0'

Test #3:

score: 0
Wrong Answer
time: 80ms
memory: 3832kb

input:

100 100 1
1 1
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 1000000000
-1 100...

output:

9978203

result:

wrong answer 1st lines differ - expected: '9999999', found: '9978203'

Subtask #2:

score: 0
Wrong Answer

Test #14:

score: 21
Accepted
time: 11ms
memory: 3692kb

input:

50 50 20
1000000000 94476 1000000000 75837 1000000000 27079 1000000000 129004 1000000000 100830 1000000000 98560 1000000000 99302 1000000000 65993 30410 1 1000000000 66183 1000000000 89148 1000000000 21236 1000000000 11935 1000000000 53895 1000000000 126490 1000000000 104741 1000000000 78615 1000000...

output:

1003

result:

ok single line: '1003'

Test #15:

score: 21
Accepted
time: 11ms
memory: 3712kb

input:

50 50 10
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 339508586 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...

output:

15782746

result:

ok single line: '15782746'

Test #16:

score: 21
Accepted
time: 11ms
memory: 3760kb

input:

50 50 50
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 10000 10000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...

output:

203

result:

ok single line: '203'

Test #17:

score: 0
Wrong Answer
time: 10ms
memory: 3900kb

input:

48 48 50
-1 -1 10002 10002 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...

output:

177

result:

wrong answer 1st lines differ - expected: '212', found: '177'

Subtask #3:

score: 0
Wrong Answer

Test #37:

score: 33
Accepted
time: 118ms
memory: 5468kb

input:

100 243 1000
969713863 380451398 977287381 546839551 578242281 267067963 834635238 316438277 806980243 189648353 779415475 453867771 741678190 352485450 473763928 190177433 687118672 377243148 644333594 197290749 949048287 436673078 690006797 180711316 714366028 387342721 980055654 198167471 8873988...

output:

28

result:

ok single line: '28'

Test #38:

score: 33
Accepted
time: 1ms
memory: 3564kb

input:

5 7 4
727218133 319808016 451811473 341827334 983666612 208956608 712124347 20325770
625539547 511168571 950094471 396282690 649119245 412489786 504515934 498965733
955685647 120970424 900386157 487638774 666900039 254430876 841869836 23162184
670731166 282497058 791738936 425566820 916482877 602671...

output:

8

result:

ok single line: '8'

Test #39:

score: 33
Accepted
time: 10ms
memory: 3728kb

input:

50 100 100
738055508 380547266 466519731 321379362 627164749 501738148 790388363 534474035 594031599 289323442 585921101 400847039 988432406 326676078 973287243 480408179 677194803 254403874 960518968 523054718 490930760 258858830 532158736 498097146 823424101 17095805 770242306 523332445 830717940 ...

output:

138919

result:

ok single line: '138919'

Test #40:

score: 33
Accepted
time: 9ms
memory: 3780kb

input:

50 100 100
714420219 664420219 670988077 620988077 749695455 699695455 567602634 546701549 630315751 580315751 548562478 510475293 734437437 684437437 517242293 467242293 712844065 662844065 530370481 480370481 584518044 534518044 780621679 730621679 542815120 533903899 599496563 549496563 709776870...

output:

2773

result:

ok single line: '2773'

Test #41:

score: 33
Accepted
time: 9ms
memory: 4032kb

input:

50 80 100
613124154 298784098 537389012 279713205 499689681 471314836 886103757 60087694 845068143 368855914 648389008 300242966 646640622 221676660 866330078 514509030 604069994 416492438 611394991 453739552 732469971 524033149 694292198 5271026 573810521 471002300 531489460 212864274 881123884 266...

output:

49797

result:

ok single line: '49797'

Test #42:

score: 33
Accepted
time: 118ms
memory: 5748kb

input:

100 9900 1000
986355298 343941451 748009505 157768582 549897631 353675832 784259651 71183802 455272137 239882644 688026841 125591164 861653505 535779783 761535420 360625660 485161701 275682287 548652543 525094271 577374254 540601357 586092427 379551990 490170545 79852082 804653532 513745338 55248752...

output:

2478

result:

ok single line: '2478'

Test #43:

score: 33
Accepted
time: 126ms
memory: 5632kb

input:

100 9900 1000
727914573 352681283 745159911 478069159 524736757 267716315 554533162 49659853 704220141 272866726 878406576 349556214 606558787 31608223 752128450 136602787 645580703 226343143 981500098 238380602 863321669 443495332 937077574 118463117 609547732 88002197 787077169 405900536 776842331...

output:

1330867

result:

ok single line: '1330867'

Test #44:

score: 0
Wrong Answer
time: 85ms
memory: 3916kb

input:

100 100 100
289207 289207 384956 384956 229259 229259 546415 546415 171739 171739 282850 282850 221135 221135 16583 16583 370773 370773 119341 119341 426085 426085 440159 440159 253180 253180 529005 529005 428704 428704 211778 211778 309906 309906 325591 325591 156929 156929 288408 288408 422082 422...

output:

772

result:

wrong answer 1st lines differ - expected: '830', found: '772'

Subtask #4:

score: 0
Skipped

Dependency #1:

0%