# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
919557 | 2024-02-01T06:29:30 Z | dosts | 사이버랜드 (APIO23_cyberland) | C++17 | 1712 ms | 67240 KB |
#pragma GCC optimize("O3,unroll-loops") #include "cyberland.h" #include <bits/stdc++.h> using namespace std; vector<pair<int,int>> edges[100000]; double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { K = min(K,68); for (int i=0;i<N;i++) edges[i].clear(); for (int i=0;i<M;i++) { edges[x[i]].push_back({y[i],c[i]}); edges[y[i]].push_back({x[i],c[i]}); } int ARR[arr.size()]; for (int i=0;i<arr.size();i++) ARR[i] = arr[i]; double dp[N][K+1]; for (int i=0;i<N;i++) { for (int j=0;j<=K;j++) dp[i][j] = 2e18; } dp[0][0] = 0; for (int used=0;used<=K;used++) { priority_queue<pair<double,int>,vector<pair<double,int>>,greater<pair<double,int>>> pq; if (used) for (int i=0;i<N;i++) dp[i][used] = min(dp[i][used],dp[i][used-1]); for (int i=0;i<N;i++) if (dp[i][used] != 2e18) pq.push({dp[i][used],i}); while (!pq.empty()) { pair<double,int> f = pq.top(); pq.pop(); double cost = f.first; int city = f.second; if (dp[city][used] < cost) continue; if (city == H) continue; for (auto it : edges[city]) { int dest = it.first; int go = it.second; if (!ARR[dest]) { if (dp[dest][used]>0) { pq.push({0,dest}); dp[dest][used] = 0; } } else { if (dp[dest][used] > cost+go) { pq.push({cost+go,dest}); dp[dest][used] = cost+go; } if (ARR[dest] == 2) { if (used!=K && dp[dest][used+1] > (cost+go)/2) { dp[dest][used+1] = (cost+go)/2; } } } } } } return dp[H][K]==2e18?-1:dp[H][K]; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 32 ms | 2896 KB | Correct. |
2 | Correct | 31 ms | 2904 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 109 ms | 3140 KB | Correct. |
2 | Correct | 135 ms | 3432 KB | Correct. |
3 | Correct | 131 ms | 3180 KB | Correct. |
4 | Correct | 143 ms | 3588 KB | Correct. |
5 | Correct | 134 ms | 3192 KB | Correct. |
6 | Correct | 190 ms | 6364 KB | Correct. |
7 | Correct | 259 ms | 6428 KB | Correct. |
8 | Correct | 121 ms | 9820 KB | Correct. |
9 | Correct | 67 ms | 2648 KB | Correct. |
10 | Correct | 64 ms | 2856 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 127 ms | 3140 KB | Correct. |
2 | Correct | 130 ms | 3648 KB | Correct. |
3 | Correct | 114 ms | 3408 KB | Correct. |
4 | Correct | 71 ms | 2852 KB | Correct. |
5 | Correct | 71 ms | 2648 KB | Correct. |
6 | Correct | 43 ms | 5592 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 119 ms | 21260 KB | Correct. |
2 | Correct | 92 ms | 3152 KB | Correct. |
3 | Correct | 78 ms | 3152 KB | Correct. |
4 | Correct | 86 ms | 3152 KB | Correct. |
5 | Correct | 53 ms | 2648 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 58 ms | 3160 KB | Correct. |
2 | Correct | 57 ms | 3160 KB | Correct. |
3 | Correct | 64 ms | 3188 KB | Correct. |
4 | Correct | 102 ms | 6088 KB | Correct. |
5 | Correct | 46 ms | 2648 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 68 ms | 3204 KB | Correct. |
2 | Correct | 53 ms | 3232 KB | Correct. |
3 | Correct | 61 ms | 26452 KB | Correct. |
4 | Correct | 65 ms | 5368 KB | Correct. |
5 | Correct | 45 ms | 2860 KB | Correct. |
6 | Correct | 62 ms | 3208 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 86 ms | 3152 KB | Correct. |
2 | Correct | 13 ms | 3416 KB | Correct. |
3 | Correct | 937 ms | 26672 KB | Correct. |
4 | Correct | 409 ms | 9064 KB | Correct. |
5 | Correct | 367 ms | 17740 KB | Correct. |
6 | Correct | 128 ms | 9656 KB | Correct. |
7 | Correct | 389 ms | 8984 KB | Correct. |
8 | Correct | 292 ms | 3920 KB | Correct. |
9 | Correct | 72 ms | 3160 KB | Correct. |
10 | Correct | 71 ms | 3160 KB | Correct. |
11 | Correct | 237 ms | 3368 KB | Correct. |
12 | Correct | 80 ms | 3176 KB | Correct. |
13 | Correct | 77 ms | 3216 KB | Correct. |
14 | Correct | 309 ms | 10448 KB | Correct. |
15 | Correct | 326 ms | 5524 KB | Correct. |
16 | Correct | 72 ms | 3152 KB | Correct. |
17 | Correct | 94 ms | 3160 KB | Correct. |
18 | Correct | 84 ms | 3160 KB | Correct. |
19 | Correct | 305 ms | 3156 KB | Correct. |
20 | Correct | 6 ms | 2648 KB | Correct. |
21 | Correct | 7 ms | 2908 KB | Correct. |
22 | Correct | 11 ms | 3416 KB | Correct. |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 147 ms | 3408 KB | Correct. |
2 | Correct | 24 ms | 3672 KB | Correct. |
3 | Correct | 1712 ms | 67240 KB | Correct. |
4 | Correct | 416 ms | 5652 KB | Correct. |
5 | Correct | 756 ms | 28500 KB | Correct. |
6 | Correct | 256 ms | 12704 KB | Correct. |
7 | Correct | 535 ms | 17004 KB | Correct. |
8 | Correct | 333 ms | 3836 KB | Correct. |
9 | Correct | 131 ms | 3664 KB | Correct. |
10 | Correct | 122 ms | 3416 KB | Correct. |
11 | Correct | 166 ms | 2896 KB | Correct. |
12 | Correct | 142 ms | 3500 KB | Correct. |
13 | Correct | 130 ms | 3416 KB | Correct. |
14 | Correct | 1201 ms | 29200 KB | Correct. |
15 | Correct | 1482 ms | 34868 KB | Correct. |
16 | Correct | 663 ms | 14168 KB | Correct. |
17 | Correct | 402 ms | 5180 KB | Correct. |
18 | Correct | 123 ms | 3408 KB | Correct. |
19 | Correct | 161 ms | 3540 KB | Correct. |
20 | Correct | 158 ms | 3924 KB | Correct. |
21 | Correct | 591 ms | 3420 KB | Correct. |
22 | Correct | 8 ms | 2648 KB | Correct. |
23 | Correct | 11 ms | 3160 KB | Correct. |
24 | Correct | 20 ms | 3672 KB | Correct. |