QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#189417 | #2879. Kaleidoscopic Route | IsaacMoris# | AC ✓ | 101ms | 19672kb | C++17 | 2.3kb | 2023-09-27 14:35:45 | 2023-09-27 14:35:47 |
Judging History
answer
#include<iostream>
#include <bits/stdc++.h>
#define ll long long
#define IO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const int N = 2e5 + 5, inf = 2e9;
int n, m;
vector<pair<int, int> > adj[N];
pair<int, int> dis[2][N];
int par[2][N];
void dijkstra(int source, pair<int, int> dis[], int par[]) {
fill(dis, dis + N, make_pair(inf, inf));
dis[source] = make_pair(0, inf);
queue<vector<int>> q;
q.push({0, inf, source});
while (!q.empty()) {
vector<int> temp = q.front();
q.pop();
int d = temp[0], mn_edge = temp[1], node = temp[2];
if (dis[node] != make_pair(d, mn_edge)) continue;
for (auto child: adj[node]) {
if (make_pair(d + 1, min(mn_edge, child.second)) < dis[child.first]) {
par[child.first] = node;
dis[child.first] = make_pair(d + 1, min(mn_edge, child.second));
q.push({d + 1, min(mn_edge, child.second), child.first});
}
}
}
}
pair<int, int> calc(vector<int> edge) {
return {dis[0][edge[0]].first + dis[1][edge[1]].first + 1,
min(dis[0][edge[0]].second, dis[1][edge[1]].second) - edge[2]};
}
void doWork() {
cin >> n >> m;
while (m--) {
int u, v, w;
cin >> u >> v >> w;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
}
dijkstra(1, dis[0], par[0]);
dijkstra(n, dis[1], par[1]);
vector<int> mid_edge = {1, adj[1][0].first, adj[1][0].second};
for (int i = 1; i <= n; i++) {
for (auto child: adj[i]) {
if (calc({i, child.first, child.second}) < calc(mid_edge)) {
mid_edge = {i, child.first, child.second};
}
}
}
vector<int> ans;
int x = mid_edge[0], y = mid_edge[1];
while (par[0][x]) {
ans.push_back(x);
x = par[0][x];
}
ans.push_back(1);
reverse(ans.begin(), ans.end());
while (par[1][y]) {
ans.push_back(y);
y = par[1][y];
}
ans.push_back(n);
cout << (int) ans.size() - 1 << "\n";
for (auto i: ans)cout << i << " ";
}
int main() {
IO
int t = 1;
// cin >> t;
for (int i = 1; i <= t; i++) {
// cout << "Case #" << i << ": ";
doWork();
}
}
详细
Test #1:
score: 100
Accepted
time: 3ms
memory: 11336kb
input:
6 8 1 5 2 5 2 5 3 5 4 1 3 10 3 4 6 4 5 7 4 6 8 2 6 1
output:
3 1 5 4 6
result:
ok 3 6
Test #2:
score: 0
Accepted
time: 0ms
memory: 12168kb
input:
10 20 1 9 34 6 3 80 7 3 15 5 4 73 4 1 42 8 6 92 2 10 25 4 3 8 9 3 79 3 1 11 9 2 74 10 1 83 3 2 6 10 3 38 10 4 48 1 5 38 6 2 43 4 2 55 8 7 90 3 5 4
output:
1 1 10
result:
ok 1 0
Test #3:
score: 0
Accepted
time: 2ms
memory: 11404kb
input:
24 65 22 11 519 2 4 585 8 17 647 1 11 464 13 4 596 12 10 733 24 21 106 1 14 345 23 5 430 2 3 137 16 7 891 16 4 807 14 3 465 4 22 532 16 9 346 21 8 859 18 15 631 9 5 914 19 17 729 1 2 546 5 15 43 2 12 349 19 9 642 13 3 441 20 15 359 21 11 645 9 14 992 4 23 9 23 9 34 24 16 117 16 18 349 10 22 285 22 5...
output:
2 1 11 24
result:
ok 2 208
Test #4:
score: 0
Accepted
time: 0ms
memory: 11464kb
input:
53 123 43 38 999 7 24 718 6 33 393 16 15 734 21 39 604 27 15 828 45 31 747 23 4 538 14 41 224 38 9 756 12 36 574 12 13 624 7 34 649 17 53 309 38 33 825 1 36 273 38 21 81 36 11 680 14 8 649 12 24 346 21 49 921 1 47 612 11 39 648 41 35 271 15 24 36 29 3 980 29 28 295 15 21 236 27 8 853 22 6 532 3 14 9...
output:
2 1 52 53
result:
ok 2 482
Test #5:
score: 0
Accepted
time: 0ms
memory: 11260kb
input:
2 1 2 1 33
output:
1 1 2
result:
ok 1 0
Test #6:
score: 0
Accepted
time: 2ms
memory: 11312kb
input:
123 1032 49 28 6306 70 79 6579 24 47 3306 102 114 7381 78 34 4078 31 92 2591 114 65 7836 92 59 7583 110 51 4384 84 99 439 78 48 77 23 77 6225 96 69 2939 55 112 45 48 29 4735 27 18 4242 117 97 395 71 64 2979 102 36 9531 20 86 7795 11 5 3142 114 107 1188 62 106 6321 6 71 2974 102 96 4240 82 13 7488 95...
output:
2 1 93 123
result:
ok 2 5258
Test #7:
score: 0
Accepted
time: 4ms
memory: 12504kb
input:
1342 23134 757 512 65447 281 782 35017 179 633 86323 707 635 20673 1225 962 76138 986 59 62123 29 482 39870 90 265 65928 572 1028 18186 810 568 89715 469 998 95978 583 641 63660 261 208 37031 775 1131 33707 161 702 33733 1340 726 67611 548 583 9224 1100 208 82846 227 486 60094 1070 565 49959 1285 11...
output:
3 1 669 616 1342
result:
ok 3 93825
Test #8:
score: 0
Accepted
time: 20ms
memory: 15296kb
input:
5313 87123 3239 37 964433 3078 247 435023 1830 493 489819 4478 1661 914186 750 2703 353434 3853 1072 285309 2117 1377 641750 1254 4366 734040 2222 2191 362794 3461 2267 359296 2514 913 627160 878 1006 709645 1767 3791 250153 4845 4041 339269 3270 2061 26968 2421 660 798388 262 1399 974636 5120 4171 ...
output:
3 1 3463 3294 5313
result:
ok 3 878139
Test #9:
score: 0
Accepted
time: 53ms
memory: 16536kb
input:
12313 173254 4620 6513 380927 4465 6551 243296 615 9825 794381 338 11211 368032 4571 9567 634707 3731 7430 87826 8106 7718 998064 4146 7848 922789 3966 1263 331881 9179 646 948846 11893 5020 883102 5612 10513 898068 3451 3435 451139 9640 1947 1353 12271 9668 283149 9742 5631 884826 6837 2449 309976 ...
output:
3 1 1402 3350 12313
result:
ok 3 497061
Test #10:
score: 0
Accepted
time: 63ms
memory: 18856kb
input:
23532 200000 21979 22532 52608855 17378 1428 55313979 12897 6506 2960978 21412 2936 26201355 1327 21400 71454522 6940 9953 7548221 15846 15164 69193724 22756 8774 49306072 10793 7975 94773768 15722 221 88298496 274 22685 29319966 21564 10196 30589888 2895 9073 93905131 8310 22526 13817682 1565 2616 ...
output:
4 1 18111 9089 18380 23532
result:
ok 4 93767115
Test #11:
score: 0
Accepted
time: 84ms
memory: 19672kb
input:
56043 200000 8956 48459 891115255 34699 29270 626119743 15612 49268 833711278 35090 40312 12951690 27544 40981 509660868 32984 29979 910590843 54449 18153 383011987 36405 52382 871189321 22735 40079 205544352 1579 34250 703531988 1733 44402 554010888 11931 21887 65967217 7150 29324 904513650 55402 4...
output:
6 1 27483 27883 37006 9501 26651 56043
result:
ok 6 960310393
Test #12:
score: 0
Accepted
time: 61ms
memory: 16672kb
input:
100000 99999 16259 89189 677093403 78250 8073 458212862 57547 91624 275388547 61506 43428 213190761 19202 93628 867133431 39385 53296 668727622 16499 67293 611076654 41619 33235 854029781 13362 34905 113954233 52118 36368 107607827 10583 42580 534654035 86638 25330 709240484 52574 8418 111555367 767...
output:
13 1 32645 7845 51316 29812 10607 72877 5776 79952 16297 43702 9206 88402 100000
result:
ok 13 861759213
Test #13:
score: 0
Accepted
time: 91ms
memory: 18952kb
input:
80000 200000 58330 43217 297444461 16896 51153 140513289 9385 49460 443143629 69429 43934 531903821 26079 74229 736987435 51036 31562 159062344 41578 13401 929067646 55379 23507 690768049 30121 23885 877254400 35892 23458 465046769 34835 48337 668330315 18408 46981 120331309 44840 17333 120558928 54...
output:
10001 1 42782 52217 20126 26894 2411 45175 61691 68220 1546 24002 69856 32621 10605 21161 31351 27491 17250 63845 16470 73161 47636 77627 74377 61637 70641 34756 25800 75672 46161 77209 595 13373 44220 48807 13282 69001 37558 7376 3613 72113 33314 15161 31800 59513 59845 5701 43189 51644 63297 69020...
result:
ok 10001 999977783
Test #14:
score: 0
Accepted
time: 79ms
memory: 17968kb
input:
60000 200000 33283 34451 984421794 1133 8529 735428179 49802 39150 2961459 35859 13866 164824146 53088 47966 338728371 51735 46841 957631316 35617 44579 765390527 31869 47907 947697615 32863 18985 25810436 3919 33953 460709820 15114 27802 873789989 14839 33186 914923632 51128 13349 457123147 22376 1...
output:
3001 1 54964 12064 31748 20995 35577 40188 50045 58670 31821 50806 13673 29233 21862 3714 49035 9727 36024 48948 32751 19143 27366 19393 45272 28350 50680 17792 1916 8996 8648 26267 15587 50398 48777 46183 24710 31773 10871 29697 11400 59127 11953 37871 26268 53086 6432 31218 40488 10726 51974 49506...
result:
ok 3001 999993516
Test #15:
score: 0
Accepted
time: 89ms
memory: 17544kb
input:
60000 200000 26678 49495 904791977 32890 59699 399754622 12897 26396 947764101 20181 36060 919392167 44765 28112 626361389 20759 621 664654420 47334 52456 433569123 48369 19294 21978034 53174 8666 493354982 19124 57914 897565679 57051 48397 126735315 44750 56723 542440811 58365 39921 299193613 47535...
output:
1001 1 38675 58318 41456 34834 30039 16360 808 7721 7458 11710 10119 28167 58074 12101 25866 17990 29185 57918 31665 55396 11040 11972 28839 18666 44818 40456 12551 36151 29548 29413 22373 44530 59554 31041 18856 40299 53852 27388 25648 13232 33929 52869 20128 37788 29602 53040 26567 21842 52620 390...
result:
ok 1001 999983190
Test #16:
score: 0
Accepted
time: 88ms
memory: 17824kb
input:
60000 200000 13030 38329 743952825 12152 25060 344237987 5142 49370 883991906 46162 353 24332994 23681 44887 192607371 29905 55905 2537031 60000 49101 932618139 32702 45796 289202695 23051 41656 727218918 16650 2928 788402888 48744 9687 107198229 6033 9276 870216942 52085 29079 468002227 47038 4289 ...
output:
101 1 2113 40946 15825 8047 1151 15686 54938 43939 34155 23333 46301 30824 51288 35950 55579 23854 42307 46659 7597 27186 50340 33981 35310 33845 37711 54999 45001 54109 40855 56812 2606 42430 43804 10142 16159 46808 12790 22688 10462 42489 30608 14922 14851 7224 52578 16886 3834 24228 54321 46176 4...
result:
ok 101 999995626
Test #17:
score: 0
Accepted
time: 101ms
memory: 18996kb
input:
100000 200000 7896 67005 744335823 85405 32336 702280723 932 10230 692822561 28090 13617 935482306 13719 79962 309957027 60358 66039 604973007 49580 98941 669698279 1601 38911 929879781 35115 49689 748307599 70574 40830 441539342 4234 27200 214000427 20461 27894 634342248 19920 34635 502770262 49809...
output:
38017 1 28852 95874 9812 54966 75438 47471 94209 32680 82983 4579 2166 15386 54302 91762 83234 17839 96658 45337 99524 11093 91004 59139 527 76366 15151 85650 23512 63239 47343 52224 41139 18201 78324 48203 10981 43942 23018 39415 52735 83385 471 22088 76321 27164 16552 68931 70166 38666 10231 20509...
result:
ok 38017 999988667
Test #18:
score: 0
Accepted
time: 57ms
memory: 16504kb
input:
100000 100000 47771 2245 858688810 19704 38623 123305252 72092 57928 629702105 19730 42283 503649158 3318 40645 865792740 70657 92619 158522375 36552 21529 702477909 13169 56667 37832573 55245 83413 207618733 88975 85459 949034495 2236 31719 841176310 14025 81513 915364558 12564 50044 744295428 3688...
output:
66680 1 76270 31837 98546 56329 34221 11994 73277 88130 98743 36600 73257 82763 15736 29585 9528 11683 38834 41176 72299 91764 18531 34459 1038 13635 40968 20488 804 60750 43126 91614 35120 98257 70185 97326 12284 85563 22265 84294 61459 64267 79230 94774 48844 56988 97737 86750 22835 91185 23623 17...
result:
ok 66680 999951042
Test #19:
score: 0
Accepted
time: 59ms
memory: 15448kb
input:
100000 99999 66977 30908 949435071 54190 72909 999205575 12113 33498 921933482 31601 57272 486107186 2532 81610 837858661 50855 92529 679975042 15525 36595 792129612 55428 54274 191405543 88797 99354 489731776 29479 1309 395259492 26559 56361 373252267 37689 27563 441866444 912 69903 258017542 3629 ...
output:
99999 1 1593 26569 95095 22126 68838 40403 40406 72740 76054 66745 95972 1017 25878 6716 37938 33253 44638 37523 36809 1302 86319 46378 14173 36723 40501 81729 14652 47035 90261 28649 52412 60433 2189 8358 36452 16254 31268 62705 96896 95387 81970 68488 91438 85220 96368 36270 89646 90044 63585 3877...
result:
ok 99999 999976813
Test #20:
score: 0
Accepted
time: 67ms
memory: 17412kb
input:
60000 200000 47285 10692 505691882 55541 58891 106240529 58919 52351 179647787 22993 38756 855676401 1188 21752 479331859 53804 20156 32533051 36571 51894 847819320 13732 16398 899099258 34870 11239 658097306 43221 34310 46804480 2396 16626 825241903 53718 18139 158174462 24822 35888 248874769 38814...
output:
12963 1 45834 55070 25674 16053 48458 37855 47668 22644 39419 39285 44823 1405 41401 47272 9879 13462 6285 27438 36566 23593 15797 26905 49967 7133 30043 14511 5307 26230 57060 56124 34003 53235 58950 45067 15291 29879 8356 21104 14689 38959 55516 10734 41586 3196 5974 14170 11682 58615 19404 41291 ...
result:
ok 12963 999980538
Test #21:
score: 0
Accepted
time: 82ms
memory: 18052kb
input:
60000 200000 52075 45966 857582124 57572 4850 910824716 36159 50425 950606070 9851 34403 5047521 21825 21680 424988833 53325 44593 135616766 23579 36275 607428614 864 4421 991903370 54798 24959 706926183 19713 1269 755420688 27732 39509 234793607 15664 44127 163234400 10226 49453 658379227 39921 861...
output:
6853 1 39081 49146 25559 35202 46455 29564 30927 29275 59729 37033 18479 31951 3148 36538 16985 8110 29670 19702 6229 39725 46541 35736 27017 49241 23384 43261 33937 12257 6770 41069 33103 57191 21882 23444 9517 44212 4119 1884 20411 46295 7317 48322 21521 50073 8948 53356 40113 40882 55810 1231 178...
result:
ok 6853 999981487
Test #22:
score: 0
Accepted
time: 89ms
memory: 18312kb
input:
60000 200000 1891 47162 951536190 36752 59437 440609838 59002 27483 924865044 13384 34668 194909776 9403 44772 573169297 15690 13096 653635499 17522 3611 411664894 20460 58639 710963529 41109 13541 354810632 16256 22124 899771391 13628 11173 231927636 13824 32461 275047309 39397 38605 1849131 20192 ...
output:
696 1 18730 24380 21257 15738 30839 16449 58893 59627 21374 33026 16736 27893 21050 46501 9724 7239 51087 54177 4603 15500 31447 36723 23796 29922 12575 53173 23681 7125 8296 56759 10312 700 8459 31673 55768 20191 10987 9218 18852 7730 13218 8968 25046 52088 15363 23424 35667 28147 22318 57252 52329...
result:
ok 696 999850312
Test #23:
score: 0
Accepted
time: 43ms
memory: 16744kb
input:
632 199396 520 52 920959168 625 184 3419342 387 412 429471383 83 163 185930246 530 428 63660253 631 447 521883183 261 602 466912409 340 419 539676608 308 131 760529469 333 488 204935294 582 272 755853621 59 116 129089400 584 76 197908036 285 107 255363470 595 352 367975615 152 201 737292798 347 297 ...
output:
1 1 632
result:
ok 1 0