[문제보기]

 14675. 단절점과 단절선

 

14675번: 단절점과 단절선

프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 트리의 정점 개수 N이 주어진다. (2 ≤ N ≤ 100,000) 트리의 정점은 1번부터 n번까지 존재한다. 다음 줄부터 N-1개의 줄에 걸쳐 간선의 정

www.acmicpc.net

 

[풀이과정]

문제에서 주어지는 그래프는 무조건 트리임을 보장한다고 했으므로, 모든 간선들은 단절선이 될 수 있다.

그리고 단절점은 말단 노드가 아니면 가능하기 때문에 말단 노드가 아닌 노드는 "yes"를 반환

말단 노드는 "no"를 반환해준다.

 

[소스코드]

#include <iostream>
#include <vector>

using namespace std;

const int MAX = 100001;
vector<int> v[MAX];

int main(){
    cin.tie(0):
    cout.sync_with_stdio(false);
    
    int n;
    cin >> n;
    for(int i=1; i<n; i++){
        int a, b;
        cin >> a >> b;

        v[a].push_back(b);
        v[b].push_back(a);
    }

    int query;
    cin >> query;

    while(query--){
        int a, b;
        cin >> a >> b;

        if(a == 1){
            if(v[b].size() >= 2)
                cout << "yes" << "\n";
            else
                cout << "no" << "\n";
        }
        else{
            cout << "yes" << "\n";
        }
    }
}

 

[해결과정 중 실수한 부분]