This commit is contained in:
e2hang
2025-09-15 22:16:09 +08:00
parent eea1a643fb
commit e9519e8558
19 changed files with 513 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
void dfs(vector<vector<int>>& d, const vector<vector<int>>& adj_, vector<bool>& vs, int v){
d[v][0] = 0;
d[v][1] = 1;
for(auto x : adj_[v]){
if(vs[x] == false) {
vs[x] = true;
dfs(d, adj_, vs, x);
//<2F><><EFBFBD><EFBFBD>
d[v][0] += max(d[x][0], d[x][1]); // <20><>ѡu<D1A1><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ
d[v][1] += d[x][0]; // ѡu<D1A1><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EBB2BB><D1A1>
}
}
}
int main(){
//ͼ<>Ļ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>vector<6F><72><EFBFBD>ڽӱ<DABD><D3B1><EFBFBD><EFBFBD><EFBFBD>
int n;
cin >> n;
vector<vector<int>> adj(n);
vector<vector<int>> dp(n, vector<int>(2, 0));
vector<bool> visited(n, false);
//vector<vector<int>> choose(n, vector<int>(n, 0));
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>n - 1
for(int i = 0; i < n - 1; i++){
int a, b;
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
/*
for(int l = 2; l <= n; l++){
for(int i = 0; i < n - l + 1; i++){
int j = i + l - 1;
for(int k = i; k < j; k++){
if(adj[i][j])
d[i][j] = max(dp[i][j], )
}
}
}*/
visited[0] = true;
dfs(dp, adj, visited, 0); // <20><><30><CEAA>
cout << max(dp[0][0], dp[0][1]) << endl;
return 0;
}