提出 #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
結果
AC × 3
AC × 58
セット名 テストケース
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