結果
| 問題 |
No.763 Noelちゃんと木遊び
|
| コンテスト | |
| ユーザー |
nyya
|
| 提出日時 | 2022-09-08 03:06:46 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 104 ms / 2,000 ms |
| コード長 | 815 bytes |
| コンパイル時間 | 1,666 ms |
| コンパイル使用メモリ | 172,928 KB |
| 実行使用メモリ | 17,920 KB |
| 最終ジャッジ日時 | 2025-03-22 10:41:38 |
| 合計ジャッジ時間 | 4,164 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
using Graph = vector<vector<int>>;
vector<bool> seen;
vector<int> dp_del;
vector<int> dp_rem;
void dfs(const Graph &G, int v) {
seen[v] = true;
for (auto next_v : G[v]) {
if (seen[next_v]) continue;
dfs(G, next_v);
dp_del[v] += max(dp_rem[next_v],dp_del[next_v]);
dp_rem[v] += dp_del[next_v];
}
}
int main(){
int n;
cin >> n;
Graph g(n);
vector<int> u(n-1),v(n-1);
rep(i,n-1) {
cin >> u[i] >> v[i];
u[i]--,v[i]--;
g[u[i]].push_back(v[i]);
g[v[i]].push_back(u[i]);
}
seen.assign(n,false);
dp_del.assign(n,0);
dp_rem.assign(n,1);
dfs(g,0);
cout << max(dp_del[0],dp_rem[0]) << endl;
return 0;
}
nyya