메뉴 건너뛰기

Programing

BAEKJOON

2454

관리자 2020.04.11 09:17 조회 수 : 43

C++

#include <cstdio>

#include <vector>

using namespace std;

int N,K,check[300010],cnt;

vector <int> vec[300010];

int serch(int n, int p){

    int min1=N, min2=N;

    for(auto v: vec[n]){

        if(v==p)

            continue;

        cnt++;

        int cop=serch(v,n);

        if(cop<min1){

            min2=min1;

            min1=cop;

        }else if(cop<min2){

            min2=cop;

        }

    }

    if(n==1){

        cnt++;

    }

    if(min1 + 1 > K)

        return 0;

    cnt--;

    if(min2 + min1 + 2 > K)

        return min1+1;

    cnt--;

    return N;

}

int main()

{

    scanf("%d %d",&N,&K);

    for(int i=1;i<N;i++){

        int u,v;

        scanf("%d %d",&u,&v);

        vec[u].push_back(v);

        vec[v].push_back(u);

    }

    serch(1, 0);

    printf("%d",cnt);

    return 0;

}

 
번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 2019.12.21 163
45 2468 관리자 2019.12.21 8
44 2458 관리자 2020.04.11 44
43 2457 관리자 2020.04.11 47
» 2454 관리자 2020.04.11 43
41 2450 관리자 2020.04.11 40
40 2339 관리자 2020.04.11 41
39 2307 관리자 2019.12.21 8
38 2250 관리자 2019.12.21 8
37 2233 관리자 2019.12.21 6
36 2170 관리자 2019.12.21 7
35 2132 관리자 2019.12.21 7
34 2096 관리자 2019.12.21 8
33 2042 관리자 2020.04.11 45
32 2003 관리자 2020.04.11 39
31 1991 관리자 2019.12.21 8
30 1967 관리자 2019.12.21 6
29 1966 관리자 2020.04.11 45
28 1946 관리자 2020.04.11 39
27 1874 관리자 2020.04.11 43
26 1839 관리자 2020.04.11 44
25 17611 관리자 2019.12.21 7
24 1753 관리자 2019.12.21 8
23 1742 관리자 2020.04.11 6
22 1720 관리자 2020.04.11 6
21 16210 관리자 2020.04.11 57
20 16201 관리자 2020.04.11 44
19 15971 관리자 2019.12.21 6
18 14865 관리자 2019.12.21 8
17 14503 관리자 2019.12.21 7
16 14502 관리자 2019.12.21 6
위로