답안 #480878

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
480878 2021-10-18T14:29:35 Z Victor Burza (COCI16_burza) C++17
160 / 160
217 ms 6984 KB
#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b) for (int i = (a); i < (b); ++i)
#define per(i, a, b) for (int i = (b - 1); i >= (a); --i)
#define trav(a, x) for (auto &a : x)

#define all(x) x.begin(), x.end()
#define sz(x) x.size()
#define pb push_back
#define debug(x) cout << #x << " = " << x << endl

#define umap unordered_map
#define uset unordered_set

typedef pair<int, int> ii;
typedef pair<int, ii> iii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<vi> vvi;

typedef long long ll;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;

const int INF = 1'000'000'007;

vi graph[401];
int n, k;

uset<int> dp(int u, int d, int p) {
    uset<int> ret;
    if (d == k) {
        ret.insert(1 << d);
        //cout << "u = " << u + 1 << " d = " << d << " sols = " << sz(ret) << endl;
        return ret;
    }

    ret.insert(0);

    trav(v, graph[u]) if (v != p) {
        uset<int> vals = dp(v, d + 1, u);
        uset<int> nxt;
        trav(v1, ret) trav(v2, vals) if ((v1 & v2) == 0) nxt.insert(v1 | v2);
        ret.swap(nxt);
    }

    ret.insert(1 << d);
    //cout << "u = " << u + 1 << " d = " << d << " sols = " << sz(ret) << endl;
    return ret;
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin.exceptions(cin.failbit);

    cin >> n >> k;
    rep(i, 0, n - 1) {
        int u, v;
        cin >> u >> v;
        graph[--u].pb(--v);
        graph[v].pb(u);
    }

    if (k * k + 1 >= n) {
        cout << "DA" << endl;
        return 0;
    }

    auto s = dp(0, 0, 0);
    if (sz(s) > 1)
        cout << "DA" << endl;
    else
        cout << "NE" << endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 972 KB Output is correct
2 Correct 90 ms 4708 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 176 ms 6984 KB Output is correct
2 Correct 91 ms 4708 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 180 ms 6192 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 135 ms 6168 KB Output is correct
2 Correct 105 ms 4912 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 32 ms 1868 KB Output is correct
2 Correct 166 ms 5832 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 91 ms 4800 KB Output is correct
2 Correct 137 ms 6252 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 149 ms 6008 KB Output is correct
2 Correct 143 ms 5760 KB Output is correct
3 Correct 1 ms 324 KB Output is correct
4 Correct 1 ms 316 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 167 ms 6676 KB Output is correct
2 Correct 130 ms 5864 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 192 ms 6616 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 33 ms 1984 KB Output is correct
2 Correct 107 ms 5152 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 788 KB Output is correct
2 Correct 149 ms 5904 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 57 ms 3084 KB Output is correct
2 Correct 217 ms 6380 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 56 ms 2856 KB Output is correct
6 Correct 1 ms 332 KB Output is correct