結果
問題 | No.763 Noelちゃんと木遊び |
ユーザー |
|
提出日時 | 2022-07-16 11:35:48 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 91 ms / 2,000 ms |
コード長 | 940 bytes |
コンパイル時間 | 2,226 ms |
コンパイル使用メモリ | 195,768 KB |
最終ジャッジ日時 | 2025-01-30 09:30:20 |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define ll long long#define rep(i, n) for (int i = 0; i < (n); i++)#define P pair<int, int>#define LP pair<ll, ll>#define fi first#define se second#define pb push_back#define eb emplace_back#define all(s) s.begin(), s.end()#define rall(s) s.rbegin(), s.rend()template<class T>void chmax(T& a, T b) { a = max(a, b); };template<class T>void chmin(T& a, T b) { a = min(a, b); };int n;vector<int> g[100005];int dp[100005][2];void dfs(int v, int p = -1) {dp[v][1] = 1;int tmp0 = 0, tmp1 = 0;for (int nv : g[v]) {if (nv == p) continue;dfs(nv,v);tmp0 += max(dp[nv][0],dp[nv][1]);tmp1 += max(dp[nv][0], dp[nv][1]-1);}dp[v][0] += tmp0;dp[v][1] += tmp1;}int main() {cin >> n;rep(i,n-1) {int u, v;cin >> u >> v;u--, v--;g[u].pb(v);g[v].pb(u);}dfs(0);cout << max(dp[0][0], dp[0][1]) << endl;return 0;}