#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 = 401;
int n, k;
vector<int> G[MAX];
int tin[MAX], tout[MAX], level[MAX], timer;
vector<int> bucket[MAX];
int dp[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);
}
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;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
23 ms |
26068 KB |
Output is correct |
2 |
Correct |
232 ms |
206072 KB |
Output is correct |
3 |
Runtime error |
338 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
214 ms |
206068 KB |
Output is correct |
2 |
Correct |
215 ms |
206080 KB |
Output is correct |
3 |
Runtime error |
217 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
211 ms |
206072 KB |
Output is correct |
2 |
Correct |
226 ms |
206068 KB |
Output is correct |
3 |
Runtime error |
202 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
48 ms |
51796 KB |
Output is correct |
2 |
Correct |
240 ms |
206068 KB |
Output is correct |
3 |
Runtime error |
194 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
204 ms |
206028 KB |
Output is correct |
2 |
Correct |
220 ms |
206068 KB |
Output is correct |
3 |
Runtime error |
216 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
225 ms |
206000 KB |
Output is correct |
2 |
Correct |
201 ms |
206028 KB |
Output is correct |
3 |
Runtime error |
185 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
235 ms |
206116 KB |
Output is correct |
2 |
Correct |
201 ms |
206116 KB |
Output is correct |
3 |
Runtime error |
224 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
51680 KB |
Output is correct |
2 |
Correct |
221 ms |
206100 KB |
Output is correct |
3 |
Runtime error |
201 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
22 ms |
26068 KB |
Output is correct |
2 |
Correct |
236 ms |
205972 KB |
Output is correct |
3 |
Runtime error |
196 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
105 ms |
103212 KB |
Output is correct |
2 |
Correct |
228 ms |
206072 KB |
Output is correct |
3 |
Runtime error |
196 ms |
524288 KB |
Execution killed with signal 9 |
4 |
Halted |
0 ms |
0 KB |
- |