# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
644640 | 2022-09-25T04:59:48 Z | guagua0407 | Toll (BOI17_toll) | C++17 | 234 ms | 98240 KB |
#include <bits/stdc++.h> using namespace std; #define ll long long #define F first #define S second #define all(x) x.begin(),x.end() #define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); void setIO(string s) { freopen((s + ".in").c_str(), "r", stdin); freopen((s + ".out").c_str(), "w", stdout); } int k,n,m,o; const int mxn=5e4+4; int dp[mxn][20][5][5]; int ans[5][5]; int tmp[5][5]; void ckmin(int a[5][5],int b[5][5],int c[5][5]){ for(int x=0;x<5;x++){ for(int y=0;y<5;y++){ for(int z=0;z<5;z++){ a[x][z]=min(a[x][z],b[x][y]+c[y][z]); } } } } int main() {_ //setIO("wayne"); cin>>k>>n>>m>>o; memset(dp,0x3f,sizeof dp); for(int i=0;i<m;i++){ int a,b,t; cin>>a>>b>>t; dp[a/k][0][a%k][b%k]=t; } for(int j=1;j<20;j++){ for(int i=0;i + (1 << j) < (n + k - 1) / k;i++){ ckmin(dp[i][j],dp[i][j-1],dp[i+(1<<j-1)][j-1]); } } for(int i=0;i<o;i++){ int a,b; cin>>a>>b; int node=a/k; int length=(b/k)-(a/k); memset(ans,0x3f,sizeof ans); for(int i=0;i<5;i++){ ans[i][i]=0; } //cout<<length<<'\n'; for(int i=0;i<20;i++){ if(length&(1<<i)){ memset(tmp,0x3f,sizeof tmp); ckmin(tmp,ans,dp[node][i]); memcpy(ans,tmp,sizeof ans); node+=(1<<i); } } cout<<(ans[a%k][b%k]==0x3f3f3f3f?-1:ans[a%k][b%k])<<'\n'; } return 0; } //maybe its multiset not set
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 234 ms | 98144 KB | Output is correct |
2 | Correct | 45 ms | 98140 KB | Output is correct |
3 | Correct | 36 ms | 98060 KB | Output is correct |
4 | Correct | 35 ms | 98060 KB | Output is correct |
5 | Correct | 38 ms | 98052 KB | Output is correct |
6 | Correct | 38 ms | 98160 KB | Output is correct |
7 | Correct | 40 ms | 98076 KB | Output is correct |
8 | Correct | 228 ms | 98168 KB | Output is correct |
9 | Correct | 230 ms | 98160 KB | Output is correct |
10 | Correct | 212 ms | 98156 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 141 ms | 98220 KB | Output is correct |
2 | Correct | 36 ms | 98124 KB | Output is correct |
3 | Correct | 35 ms | 98140 KB | Output is correct |
4 | Correct | 41 ms | 98088 KB | Output is correct |
5 | Correct | 37 ms | 98108 KB | Output is correct |
6 | Correct | 37 ms | 98108 KB | Output is correct |
7 | Correct | 46 ms | 98124 KB | Output is correct |
8 | Correct | 45 ms | 98196 KB | Output is correct |
9 | Correct | 224 ms | 98156 KB | Output is correct |
10 | Correct | 124 ms | 98156 KB | Output is correct |
11 | Correct | 147 ms | 98240 KB | Output is correct |
12 | Correct | 119 ms | 98180 KB | Output is correct |
13 | Correct | 118 ms | 98148 KB | Output is correct |
14 | Correct | 81 ms | 98080 KB | Output is correct |
15 | Correct | 66 ms | 98080 KB | Output is correct |
16 | Correct | 67 ms | 98156 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 37 ms | 98124 KB | Output is correct |
2 | Correct | 39 ms | 98128 KB | Output is correct |
3 | Correct | 39 ms | 98056 KB | Output is correct |
4 | Correct | 38 ms | 98128 KB | Output is correct |
5 | Correct | 41 ms | 98124 KB | Output is correct |
6 | Correct | 44 ms | 98140 KB | Output is correct |
7 | Correct | 41 ms | 98080 KB | Output is correct |
8 | Correct | 38 ms | 98088 KB | Output is correct |
9 | Correct | 44 ms | 98072 KB | Output is correct |
10 | Correct | 220 ms | 98192 KB | Output is correct |
11 | Correct | 137 ms | 98156 KB | Output is correct |
12 | Correct | 108 ms | 98156 KB | Output is correct |
13 | Correct | 113 ms | 98032 KB | Output is correct |
14 | Correct | 106 ms | 98156 KB | Output is correct |
15 | Correct | 71 ms | 98156 KB | Output is correct |
16 | Correct | 62 ms | 98036 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 37 ms | 98124 KB | Output is correct |
2 | Correct | 39 ms | 98128 KB | Output is correct |
3 | Correct | 39 ms | 98056 KB | Output is correct |
4 | Correct | 38 ms | 98128 KB | Output is correct |
5 | Correct | 41 ms | 98124 KB | Output is correct |
6 | Correct | 44 ms | 98140 KB | Output is correct |
7 | Correct | 41 ms | 98080 KB | Output is correct |
8 | Correct | 38 ms | 98088 KB | Output is correct |
9 | Correct | 44 ms | 98072 KB | Output is correct |
10 | Correct | 220 ms | 98192 KB | Output is correct |
11 | Correct | 137 ms | 98156 KB | Output is correct |
12 | Correct | 108 ms | 98156 KB | Output is correct |
13 | Correct | 113 ms | 98032 KB | Output is correct |
14 | Correct | 106 ms | 98156 KB | Output is correct |
15 | Correct | 71 ms | 98156 KB | Output is correct |
16 | Correct | 62 ms | 98036 KB | Output is correct |
17 | Correct | 137 ms | 98152 KB | Output is correct |
18 | Correct | 36 ms | 98036 KB | Output is correct |
19 | Correct | 40 ms | 98116 KB | Output is correct |
20 | Correct | 36 ms | 98136 KB | Output is correct |
21 | Correct | 45 ms | 98152 KB | Output is correct |
22 | Correct | 40 ms | 98144 KB | Output is correct |
23 | Correct | 41 ms | 98072 KB | Output is correct |
24 | Correct | 41 ms | 98128 KB | Output is correct |
25 | Correct | 41 ms | 98120 KB | Output is correct |
26 | Correct | 40 ms | 98164 KB | Output is correct |
27 | Correct | 227 ms | 98164 KB | Output is correct |
28 | Correct | 117 ms | 98160 KB | Output is correct |
29 | Correct | 122 ms | 98132 KB | Output is correct |
30 | Correct | 115 ms | 98156 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 234 ms | 98144 KB | Output is correct |
2 | Correct | 45 ms | 98140 KB | Output is correct |
3 | Correct | 36 ms | 98060 KB | Output is correct |
4 | Correct | 35 ms | 98060 KB | Output is correct |
5 | Correct | 38 ms | 98052 KB | Output is correct |
6 | Correct | 38 ms | 98160 KB | Output is correct |
7 | Correct | 40 ms | 98076 KB | Output is correct |
8 | Correct | 228 ms | 98168 KB | Output is correct |
9 | Correct | 230 ms | 98160 KB | Output is correct |
10 | Correct | 212 ms | 98156 KB | Output is correct |
11 | Correct | 141 ms | 98220 KB | Output is correct |
12 | Correct | 36 ms | 98124 KB | Output is correct |
13 | Correct | 35 ms | 98140 KB | Output is correct |
14 | Correct | 41 ms | 98088 KB | Output is correct |
15 | Correct | 37 ms | 98108 KB | Output is correct |
16 | Correct | 37 ms | 98108 KB | Output is correct |
17 | Correct | 46 ms | 98124 KB | Output is correct |
18 | Correct | 45 ms | 98196 KB | Output is correct |
19 | Correct | 224 ms | 98156 KB | Output is correct |
20 | Correct | 124 ms | 98156 KB | Output is correct |
21 | Correct | 147 ms | 98240 KB | Output is correct |
22 | Correct | 119 ms | 98180 KB | Output is correct |
23 | Correct | 118 ms | 98148 KB | Output is correct |
24 | Correct | 81 ms | 98080 KB | Output is correct |
25 | Correct | 66 ms | 98080 KB | Output is correct |
26 | Correct | 67 ms | 98156 KB | Output is correct |
27 | Correct | 37 ms | 98124 KB | Output is correct |
28 | Correct | 39 ms | 98128 KB | Output is correct |
29 | Correct | 39 ms | 98056 KB | Output is correct |
30 | Correct | 38 ms | 98128 KB | Output is correct |
31 | Correct | 41 ms | 98124 KB | Output is correct |
32 | Correct | 44 ms | 98140 KB | Output is correct |
33 | Correct | 41 ms | 98080 KB | Output is correct |
34 | Correct | 38 ms | 98088 KB | Output is correct |
35 | Correct | 44 ms | 98072 KB | Output is correct |
36 | Correct | 220 ms | 98192 KB | Output is correct |
37 | Correct | 137 ms | 98156 KB | Output is correct |
38 | Correct | 108 ms | 98156 KB | Output is correct |
39 | Correct | 113 ms | 98032 KB | Output is correct |
40 | Correct | 106 ms | 98156 KB | Output is correct |
41 | Correct | 71 ms | 98156 KB | Output is correct |
42 | Correct | 62 ms | 98036 KB | Output is correct |
43 | Correct | 137 ms | 98152 KB | Output is correct |
44 | Correct | 36 ms | 98036 KB | Output is correct |
45 | Correct | 40 ms | 98116 KB | Output is correct |
46 | Correct | 36 ms | 98136 KB | Output is correct |
47 | Correct | 45 ms | 98152 KB | Output is correct |
48 | Correct | 40 ms | 98144 KB | Output is correct |
49 | Correct | 41 ms | 98072 KB | Output is correct |
50 | Correct | 41 ms | 98128 KB | Output is correct |
51 | Correct | 41 ms | 98120 KB | Output is correct |
52 | Correct | 40 ms | 98164 KB | Output is correct |
53 | Correct | 227 ms | 98164 KB | Output is correct |
54 | Correct | 117 ms | 98160 KB | Output is correct |
55 | Correct | 122 ms | 98132 KB | Output is correct |
56 | Correct | 115 ms | 98156 KB | Output is correct |
57 | Correct | 141 ms | 98200 KB | Output is correct |
58 | Correct | 233 ms | 98152 KB | Output is correct |
59 | Correct | 153 ms | 98156 KB | Output is correct |