포럼
문제 USACO0354

풀 심기

설명

농부 존이 모든 밭에 풀을 심을 시기가 되었다. 농장 전체는 \(N\)개의 밭 (\(1 \leq N \leq 10^5\))으로 이루어져 있으며, 편의상 \(1 \ldots N\)번으로 번호가 매겨져 있고, 편리하게도 \(N-1\)개의 양방향 길로 연결되어 있어서 어떤 밭에서든 길들을 적절히 따라가면 다른 어떤 밭에도 도달할 수 있다.

농부 존은 밭마다 서로 다른 종류의 풀을 심을 수도 있지만, 사용하는 풀 종류가 많을수록 비용이 더 들기 때문에 전체적으로 사용하는 풀 종류의 수를 최소화하고 싶어한다.

안타깝게도 그의 소들은 농장의 풀 선택에 대해 꽤 까다로워졌다. 인접한 두 밭 (길로 직접 연결된 밭)이나, 심지어 거의 인접한 두 밭 (둘 다 길로 공통의 밭에 직접 연결된 밭)에 같은 종류의 풀이 심어져 있으면, 소들은 식사 선택지의 다양성이 부족하다고 불평할 것이다. 불만을 품은 소들이 그동안 얼마나 많은 말썽을 일으켜 왔는지를 생각하면, 농부 존에게 불평하는 소들은 결코 달갑지 않다.

농장 전체에 필요한 풀 종류의 최소 개수를 구하도록 농부 존을 도와주자.

출제자: Dhruv Rohatgi

제약

출제자: Dhruv Rohatgi

입력 형식

입력의 첫째 줄에 \(N\)이 주어진다. 나머지 \(N-1\)개의 줄에는 각각 길 하나가 연결하는 두 밭이 주어진다.

출력 형식

농부 존에게 필요한 풀 종류의 최소 개수를 출력한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 planting.in · 출력을 쓸 파일 planting.out
예제 1
입력
4
1 2
4 3
2 3
출력
3
설명

In this simple example, there are 4 fields all connected in a linear fashion. A
minimum of three grass types are needed. For example, Farmer John could plant
the fields with grass types A, B, and C as A - B - C - A.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2018-2019 > January > Silver

태그

평가 및 의견

Grass Planting

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Grass Planting

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (planting.in / planting.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8