제출 #896206

#제출 시각아이디문제언어결과실행 시간메모리
896206juliany2Meetings 2 (JOI21_meetings2)C++17
4 / 100
4 ms608 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; #define all(x) (x).begin(), (x).end() const int N = 17; int n; vector<int> adj[N]; int sz[N], ans[N]; int cnt, cur; void dfs(int v = 1, int p = 0) { for (int u : adj[v]) { if (u != p) { dfs(u, v); sz[v] += sz[u]; } } if (sz[v] == cnt / 2) cur++; } int main() { cin.tie(0)->sync_with_stdio(false); cin >> n; for (int i = 1; i < n; i++) { int u, v; cin >> u >> v; u--, v--; adj[u].push_back(v); adj[v].push_back(u); } for (int mask = 1; mask < (1 << n); mask++) { cnt = __builtin_popcount(mask), cur = 0; if (cnt % 2) continue; for (int i = 0; i < n; i++) sz[i] = mask >> i & 1; dfs(); ans[cnt] = max(ans[cnt], cur + 1); } for (int i = 1; i <= n; i++) cout << (i % 2 ? 1 : ans[i]) << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...