Submission #62336
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | #include <bits/stdc++.h> #define F first #define S second using namespace std; using ll = long long ; typedef pair< int , int > P; ll Mod = 1000000007; int main() { int INF = Mod / 10; ll ans = 0; int V1,E1; int V2,E2; cin >> V1 >> E1 >> V2 >> E2; int s,g,L; cin >> s >> g >> L; s--; g--; vector< int > Graph1[V1]; vector< int > Graph2[V2]; for ( int i = 0; i < E1; i++) { int u,v; cin >> u >> v; u--; v--; Graph1[u].push_back(v); Graph1[v].push_back(u); } for ( int i = 0; i < E2; i++) { int u,v; cin >> u >> v; u--; v--; Graph2[u].push_back(v); Graph2[v].push_back(u); } int dis1[V1]; int dis2[V2]; for ( int i = 0; i < V1; i++) dis1[i] = INF; for ( int i = 0; i < V2; i++) dis2[i] = INF; queue<P> que1; queue<P> que2; que1.push(make_pair(s,0)); que2.push(make_pair(g,0)); while (!que1.empty()) { P p = que1.front(); que1.pop(); if (dis1[p.F] <= p.S) { continue ; } else { dis1[p.F] = p.S; } for ( int i = 0; i < ( int )Graph1[p.F].size(); i++) { if (dis1[Graph1[p.F][i]] > p.S + 1) { que1.push(make_pair(Graph1[p.F][i],p.S+1)); } } } while (!que2.empty()) { P p = que2.front(); que2.pop(); if (dis2[p.F] <= p.S) { continue ; } else { dis2[p.F] = p.S; } for ( int i = 0; i < ( int )Graph2[p.F].size(); i++) { if (dis2[Graph2[p.F][i]] > p.S + 1) { que2.push(make_pair(Graph2[p.F][i],p.S+1)); } } } ll lis1[300000]; ll lis2[300000]; for ( int i = 0; i < 300000; i++) { lis1[i] = 0; lis2[i] = 0; } for ( int i = 0; i < V1; i++) { lis1[dis1[i]]++; } for ( int i = 0; i < V2; i++) { lis2[dis2[i]]++; } for ( int i = 0; i < 300000; i++) { int j = (L-1) - i; if (0 <= j && j <= (L-1)) { ans += lis1[i] * lis2[j]; } } cout << ans << endl; return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 1335 - グラフ☆コネクト |
ユーザー名 | CheckMate |
投稿日時 | 2020-08-16 21:44:26 |
言語 | C++17 |
状態 | Accepted |
得点 | 100 |
ソースコード長 | 1984 Byte |
最大実行時間 | 169 ms |
最大メモリ使用量 | 17464 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 100 / 100 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
in01.txt | AC | 129 ms | 13404 KB |
1
|
in02.txt | AC | 78 ms | 9460 KB |
1
|
in03.txt | AC | 108 ms | 11256 KB |
1
|
in04.txt | AC | 93 ms | 12244 KB |
1
|
in05.txt | AC | 106 ms | 11328 KB |
1
|
in06.txt | AC | 93 ms | 10640 KB |
1
|
in07.txt | AC | 77 ms | 11280 KB |
1
|
in08.txt | AC | 105 ms | 13848 KB |
1
|
in09.txt | AC | 37 ms | 6076 KB |
1
|
in10.txt | AC | 77 ms | 10980 KB |
1
|
in11.txt | AC | 131 ms | 17060 KB |
1
|
in12.txt | AC | 134 ms | 17328 KB |
1
|
in13.txt | AC | 135 ms | 17464 KB |
1
|
in14.txt | AC | 132 ms | 17456 KB |
1
|
in15.txt | AC | 67 ms | 7292 KB |
1
|
in16.txt | AC | 59 ms | 7316 KB |
1
|
in17.txt | AC | 82 ms | 8036 KB |
1
|
in18.txt | AC | 75 ms | 8044 KB |
1
|
in19.txt | AC | 105 ms | 13804 KB |
1
|
in20.txt | AC | 140 ms | 16912 KB |
1
|
in21.txt | AC | 169 ms | 16988 KB |
1
|
in22.txt | AC | 137 ms | 16944 KB |
1
|
in23.txt | AC | 154 ms | 17024 KB |
1
|
in24.txt | AC | 109 ms | 12872 KB |
1
|
in25.txt | AC | 135 ms | 17376 KB |
1
|
in26.txt | AC | 96 ms | 12252 KB |
1
|
in27.txt | AC | 111 ms | 12260 KB |
1
|
in28.txt | AC | 26 ms | 5228 KB |
1
|
in29.txt | AC | 21 ms | 5256 KB |
1
|
in30.txt | AC | 128 ms | 17312 KB |
1
|
sample01.txt | AC | 18 ms | 5164 KB |
1
|
sample02.txt | AC | 19 ms | 5192 KB |
1
|
sample03.txt | AC | 17 ms | 5336 KB |
1
|