This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
/*
* Author: Matheus Monteiro
*/
using namespace std;
#define SZ(a) (int)a.size()
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int MAX = 403;
int n, k;
vector<int> G[MAX];
int tin[MAX], tout[MAX], level[MAX], timer;
vector<int> bucket[MAX];
int dp[10 + (1 << 20)][MAX];
void dfs(int v, int p) {
if(level[v] >= 0)
bucket[level[v]].push_back(v);
tin[v] = timer + 1;
for(int u : G[v]) {
if(u != p) {
level[u] = level[v] + 1;
if(level[u] < k) {
dfs(u, v);
}
}
}
if(level[v] == k - 1)
timer++;
tout[v] = timer;
}
void solve() {
cin >> n >> k;
for(int i = 1; i < n; ++i) {
int u, v;
cin >> u >> v; --u; --v;
G[u].push_back(v);
G[v].push_back(u);
}
if(k * k >= n) {
cout << "DA\n";
return;
}
level[0] = -1;
dfs(0, -1);
for(int i = 0; i <= k; ++i)
sort(bucket[i].begin(), bucket[i].end(), [&](int a, int b)
{
return tin[a] < tin[b];
}
);
for(int i = 0; i < (1 << k); ++i)
dp[i][0] = 1;
for(int i = 1; i < (1 << k); ++i)
for(int j = 0; j < k; ++j)
if(i & (1 << j))
for(int u : bucket[j])
if(dp[i ^ (1 << j)][ tin[u] - 1])
dp[i][ tout[u] ] = 1;
bool flag = false;
for(int i = 0; i < (1 << k); ++i)
if(dp[i][timer])
flag = true;
cout << (flag ? "DA\n" : "NE\n");
}
int32_t main() {
fastio;
solve();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |