[백준 15681] 트리와 쿼리 (C++)

[백준 15681] 트리와 쿼리 (C++)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

#include < iostream > #include < vector > using namespace std ; int dp[ 100001 ]; bool visited[ 100001 ]; vector < int > v[ 100001 ]; bool isleaf; int N, R, Q; void dfs( int node, int parent) { visited[node] = true ; for ( int i = 0 ; i < v[node]. size (); i + + ) { int next = v[node][i]; if (visited[next]) continue ; dfs(next, node); } if (parent ! = - 1 ) { dp[parent] + = dp[node]; } } int main() { ios_base::sync_with_stdio( false ); cin .tie( 0 ); cout .tie( 0 ); fill_n(dp, 100001 , 1 ); cin > > N > > R > > Q; int a, b; for ( int i = 0 ; i < N - 1 ; i + + ) { cin > > a > > b; v[a]. push_back (b); v[b]. push_back (a); } dfs(R, - 1 ); for ( int i = 0 ; i < Q; i + + ) { int q; cin > > q; cout < < dp[q] < < '

' ; } return 0 ; } Colored by Color Scripter

from http://gamedoridori.tistory.com/15 by ccl(A) rewrite - 2021-08-26 15:26:41