题解
2025-10-11 20:21:33
发布于:广东
3阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector<vector<int>> adj(n + 1);
for(int i = 0;i < n - 1;i++){
int u,v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
for(int start = 1;start <= n;start++){
vector<int> distance(n + 1,-1);
queue<int> q;
distance[start] = 0;
q.push(start);
while(!q.empty()){
int curr = q.front();
q.pop();
for(int neighbor : adj[curr]){
if(distance[neighbor] == -1){
distance[neighbor] = distance[curr] + 1;
q.push(neighbor);
}
}
}
int count = 0;
for(int i = 1;i <= n;i++){
if(distance[i] % 2 == 0){
count++;
}
}
cout << count << " ";
}
return 0;
}
这里空空如也







有帮助,赞一个