QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#573339 | #676. Travelling Merchant | makrav | 0 | 126ms | 5696kb | C++20 | 3.3kb | 2024-09-18 18:14:46 | 2024-09-18 18:14:46 |
Judging History
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 = 1e18 + 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: 94ms
memory: 5680kb
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: 4148kb
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: 81ms
memory: 4068kb
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: 3968kb
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: 3668kb
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: 3704kb
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: 3688kb
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: 119ms
memory: 5376kb
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: 3644kb
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: 7ms
memory: 3736kb
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: 10ms
memory: 3964kb
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: 10ms
memory: 3720kb
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: 126ms
memory: 5696kb
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: 5660kb
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: 86ms
memory: 4076kb
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%