提出 #68579462
ソースコード 拡げる
#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
using ll = long long;
using ld = long double;
constexpr ll MOD = 1e9+7; // 998244353
int N, M;
set<pair<int, int>> G[200005];
void addEdge(int u, int v, int w=1) {
G[u].insert({v, w});
G[v].insert({u, w});
}
void eraseEdge(int u, int v) {
G[u].erase(G[u].lower_bound({v, 0}));
G[v].erase(G[v].lower_bound({u, 0}));
}
void compress() {
set<int> q;
for (int u = 1; u <= N; ++u) q.insert(u);
while (!q.empty()) {
int u = *q.begin();
q.erase(q.begin());
if (u == 1 || u == N) continue;
else if (G[u].size() == 1) {
int v = G[u].begin()->first;
eraseEdge(u, v);
q.insert(v);
} else if (G[u].size() == 2) {
auto [v1, w1] = *G[u].begin();
auto [v2, w2] = *(++G[u].begin());
eraseEdge(u, v1);
eraseEdge(u, v2);
if (v1 != v2) {
addEdge(v1, v2, w1+w2);
} else {
q.insert(v1);
q.insert(v2);
}
}
}
// for (int u = 1; u <= N; ++u) {
// assert(u == 1 || u == N || G[u].size() == 0 || G[u].size() >= 3);
// }
}
bool seen[200005];
int ans[200005];
void dfs(int u, int dep = 0) {
if (u == N) {
ans[dep]++;
return;
}
seen[u] = true;
for (auto [v, w] : G[u]) {
if (!seen[v]) dfs(v, dep+w);
}
seen[u] = false;
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> N >> M;
for (int u, v, i = 0; i < M; ++i) {
cin >> u >> v;
addEdge(u, v);
}
compress();
dfs(1);
for (int k = 1; k < N; ++k) cout << ans[k] << " ";
cout << "\n";
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | G - Count Simple Paths 2 |
| ユーザ | ryno |
| 言語 | C++ 17 (gcc 12.2) |
| 得点 | 600 |
| コード長 | 1833 Byte |
| 結果 | AC |
| 実行時間 | 802 ms |
| メモリ | 41728 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt, 01_test_46.txt, 01_test_47.txt, 01_test_48.txt, 01_test_49.txt, 01_test_50.txt, 01_test_51.txt, 01_test_52.txt, 01_test_53.txt, 01_test_54.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 5 ms | 12796 KiB |
| 00_sample_01.txt | AC | 6 ms | 12752 KiB |
| 00_sample_02.txt | AC | 6 ms | 12796 KiB |
| 01_test_00.txt | AC | 129 ms | 29632 KiB |
| 01_test_01.txt | AC | 242 ms | 41016 KiB |
| 01_test_02.txt | AC | 122 ms | 30208 KiB |
| 01_test_03.txt | AC | 244 ms | 41204 KiB |
| 01_test_04.txt | AC | 171 ms | 35296 KiB |
| 01_test_05.txt | AC | 239 ms | 41032 KiB |
| 01_test_06.txt | AC | 71 ms | 23408 KiB |
| 01_test_07.txt | AC | 242 ms | 41132 KiB |
| 01_test_08.txt | AC | 49 ms | 20984 KiB |
| 01_test_09.txt | AC | 226 ms | 41240 KiB |
| 01_test_10.txt | AC | 46 ms | 21824 KiB |
| 01_test_11.txt | AC | 230 ms | 41216 KiB |
| 01_test_12.txt | AC | 454 ms | 41400 KiB |
| 01_test_13.txt | AC | 802 ms | 41204 KiB |
| 01_test_14.txt | AC | 581 ms | 41728 KiB |
| 01_test_15.txt | AC | 714 ms | 41464 KiB |
| 01_test_16.txt | AC | 320 ms | 41152 KiB |
| 01_test_17.txt | AC | 336 ms | 40984 KiB |
| 01_test_18.txt | AC | 232 ms | 40996 KiB |
| 01_test_19.txt | AC | 242 ms | 41012 KiB |
| 01_test_20.txt | AC | 248 ms | 41180 KiB |
| 01_test_21.txt | AC | 280 ms | 40988 KiB |
| 01_test_22.txt | AC | 330 ms | 41232 KiB |
| 01_test_23.txt | AC | 317 ms | 41112 KiB |
| 01_test_24.txt | AC | 299 ms | 41344 KiB |
| 01_test_25.txt | AC | 313 ms | 41228 KiB |
| 01_test_26.txt | AC | 330 ms | 41144 KiB |
| 01_test_27.txt | AC | 285 ms | 41052 KiB |
| 01_test_28.txt | AC | 261 ms | 40932 KiB |
| 01_test_29.txt | AC | 243 ms | 41132 KiB |
| 01_test_30.txt | AC | 220 ms | 41528 KiB |
| 01_test_31.txt | AC | 233 ms | 41504 KiB |
| 01_test_32.txt | AC | 226 ms | 40864 KiB |
| 01_test_33.txt | AC | 238 ms | 40872 KiB |
| 01_test_34.txt | AC | 233 ms | 40952 KiB |
| 01_test_35.txt | AC | 253 ms | 41012 KiB |
| 01_test_36.txt | AC | 308 ms | 41120 KiB |
| 01_test_37.txt | AC | 262 ms | 40944 KiB |
| 01_test_38.txt | AC | 298 ms | 41036 KiB |
| 01_test_39.txt | AC | 257 ms | 41136 KiB |
| 01_test_40.txt | AC | 255 ms | 41036 KiB |
| 01_test_41.txt | AC | 441 ms | 41044 KiB |
| 01_test_42.txt | AC | 528 ms | 41168 KiB |
| 01_test_43.txt | AC | 242 ms | 41068 KiB |
| 01_test_44.txt | AC | 228 ms | 41028 KiB |
| 01_test_45.txt | AC | 5 ms | 12768 KiB |
| 01_test_46.txt | AC | 219 ms | 41000 KiB |
| 01_test_47.txt | AC | 5 ms | 12888 KiB |
| 01_test_48.txt | AC | 225 ms | 40952 KiB |
| 01_test_49.txt | AC | 230 ms | 41036 KiB |
| 01_test_50.txt | AC | 212 ms | 41112 KiB |
| 01_test_51.txt | AC | 259 ms | 41648 KiB |
| 01_test_52.txt | AC | 372 ms | 41680 KiB |
| 01_test_53.txt | AC | 170 ms | 40856 KiB |
| 01_test_54.txt | AC | 167 ms | 40936 KiB |