문제접근
•
벡터를 이용하여 입력받은 노드들을 양방향으로 연결
•
단절점인지 선택된 노드의 배열을 확인하여 요소가 하나밖에 없으면 단절점 x, 2개이상이면 단절점 가능
•
단절선은 무조건 가능
놓쳤던 부분
코드
7040 KB
48 ms
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
vector<vector<int> > v;
int n;
int input1, input2;
int t,k;
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
v.resize(n + 1);
for (int i = 0; i < n - 1; i++)
{
cin >> input1 >> input2;
v[input1].push_back(input2);
v[input2].push_back(input1);
}
cin >> input1;
for (int i = 0; i < input1; i++)
{
cin >> t >> k;
if (t == 1)
{
if (v[k].size() < 2)
cout << "no\n";
else
cout <<"yes\n";
}
else
cout << "yes\n";
}
return (0);
}
C++
복사