반응형
https://www.acmicpc.net/problem/15681
#include <bits/stdc++.h>
using namespace std;
#define MX 100001
int N, R, Q, dp[MX];
vector<int> adj[MX];
bool vis[MX];
int DFS(int node){
dp[node] = 1;
for(int i=0; i<adj[node].size(); i++){
if(dp[adj[node][i]]==0)
dp[node] += DFS(adj[node][i]);
}
return dp[node];
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> N >> R >> Q;
for(int i=0; i<N-1; i++){
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
DFS(R);
for(int i=0; i<Q; i++){
int num;
cin >> num;
cout << dp[num] << '\n';
}
return 0;
}
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 2213번 : 트리의 독립집합 - 트리 DP, C++ (0) | 2022.10.03 |
---|---|
백준 2533 : 사회망 서비스(SNS) - 트리 DP, C++ (0) | 2022.10.03 |
백준 1949번 : 우수마을 - 트리 C++ (0) | 2022.10.02 |
[백준] 4256번 : 트리 - 재귀 (0) | 2022.10.02 |
백준 5639번 : 이진 검색 트리 - 트리 구현 후위 순회 C++ (0) | 2022.10.01 |