Algorithm π§π»π»/λ°±μ€(BOJ)
[λ°±μ€,c++] 15900λ² - λ무 νμΆ
dkswnkk
2022. 8. 15. 23:38
λ¬Έμ
15900λ²: λ무 νμΆ
νμμ μ¬μ΄κ° μ’μ§ μλ μ±μμ΄μ νμμ΄κ° λλμ΄ μ λλ‘ ν ν λΆμΌλ €κ³ νλ€. μ±μμ΄μ νμμ΄ λκ³Ό λͺ¨λ λκ°μ΄ μΉν μΈμμ΄κ° λκ²° μ’ λͺ©μ μ ν΄ κ°μ Έμλ€. λ°λ‘ 'λ무 νμΆ' μ΄λΌλ 보λκ²
www.acmicpc.net
μ½λ
#include <iostream>
#include <vector>
using namespace std;
int N;
vector<int>graph[500001];
bool visited[500001];
int odd_height_cnt;
void dfs(int node, int depth){
if(graph[node].size()==1 && node != 1){ // 리νλ
ΈλμΌ λ
if(depth&1) odd_height_cnt++;
return;
}
visited[node] = 1;
for(auto next: graph[node]){
if(!visited[next]){
dfs(next, depth+1);
}
}
}
int main(){
/*
λμ΄κ° νμμΈ λ¦¬νλ
Έλκ° νμκ°λ©΄ μ΄κΈ°κ³ μ§μκ°λ©΄ μ§λ€.
*/
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N;
for(int i=0; i<N-1; i++){
int a,b; cin>>a>>b;
graph[a].push_back(b);
graph[b].push_back(a);
}
dfs(1, 0);
if(odd_height_cnt % 2 == 0) cout<<"No";
else cout<<"Yes";
}
νμ΄
νΈλ¦¬κ° μ΄λ»κ² λμ΄μμ΄μΌ μ±μμ΄κ° μ΄κΈΈ μ μμμ§ ν€ ν¬μΈνΈλ₯Ό λ μ¬λ €μΌ νλ λ¬Έμ μ λλ€.
μ΄ λ¬Έμ μ ν€ ν¬μΈνΈλ μ±μμ΄κ° νΈλ¦¬μμ λμ΄κ° νμμΈ λ¦¬ν λ Έλκ° νμ κ°λ©΄ μ΄κΈ°κ³ μ§μ κ°λ©΄ μ§λ€. μ λλ€.
λ°λΌμ κ° λ¦¬ν λ ΈλκΉμ§μ λμ΄κ° νμμΈ λ¦¬ν λ Έλμ κ°μκ° λͺ κ°μΈμ§λ₯Ό μ°Ύμμ 쑰건μ λ§κ² Yesμ Noλ₯Ό μΆλ ₯νλ©΄ λ©λλ€.