DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제문제집
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

홀수 차수 그래프

문제로 돌아가기

해설

서브태스크 1: 가능한 (N2)\binom{N}{2}(2N​)개 간선의 모든 부분집합을 열거한다. 각 그래프의 간선 수, 연결성, 홀수 차수 정점 수를 검사한다. 시간 복잡도는 O(2(N2)N2)O(2^{\binom{N}{2}}N^2)O(2(2N​)N2), 공간 복잡도는 O(N2)O(N^2)O(N2)이다.

전체 풀이: 모든 정점의 차수의 합은 간선 수의 두 배이므로 짝수이다. 따라서 홀수 차수 정점의 수 KKK가 홀수이면 불가능하다. N=1N=1N=1이면 K=1K=1K=1이므로 이 경우도 자동으로 처리된다.

KKK가 짝수이면 K≥2K\geq2K≥2이다. 먼저 정점 111과 각 정점 2,3,…,K2,3,\ldots,K2,3,…,K를 잇는다. 중심 11의 차수는 로 홀수이고, 나머지 개 정점의 차수는 이므로 홀수 차수 정점이 정확히 개이다.

남은 정점은 KKK번 정점에서 시작하는 경로로 붙인다. 즉, (K,K+1),(K+1,K+2),…,(N−1,N)(K,K+1),(K+1,K+2),\ldots,(N-1,N)(K,K+1),(K+1,K+2을 추가한다. 정점을 하나 붙일 때마다 기존 경로 끝점의 차수가 에서 로 바뀌고 새 끝점의 차수는 이 되므로 홀수 차수 정점 수는 유지된다.

결과는 자기 루프와 중복 간선이 없는 연결된 트리이다. 간선 수는 (K−1)+(N−K)=N−1(K-1)+(N-K)=N-1(K−1)+(N−K)=N−1이므로 출력 제한도 만족한다. K=NK=NK=이면 경로를 추가하지 않는다.

케이스당 시간 복잡도는 O(N)O(N)O(N), 출력 버퍼를 제외한 추가 공간 복잡도는 O(1)O(1)O(1)이다. 채점기는 중복 간선을 집합으로 검사하고 서로소 집합 자료구조로 연결성을 검사하여 O(N+Mlog⁡(M+1))O(N+M\log(M+1))O(N+Mlog(M+ 시간과 공간을 사용한다. 이며 모든 계산은 64비트 부호 있는 정수 범위 안에 있다.

Solution written by GPT

1
K−1K-1K−1
K−1K-1K−1
111
KKK
)
,
…
,
(
N
−
1,N)
111
222
111
N
1
))
O(N+M)O(N+M)O(N+M)
M≤2NM\leq2NM≤2N