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

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

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

타일 덮기

문제로 돌아가기

해설

길이가 BBB인 타일이 xxx번 사용되었다고 하자. 처음과 마지막 타일이 모두 길이 AAA이고 두 종류의 타일을 번갈아 놓으므로 길이 AAA인 타일은 x+1x+1x+1번 사용된다. 두 종류의 타일을 모두 사용해야 하므로 x≥1x\geq1x≥1이다.

따라서

A(x+1)+Bx=(A+B)x+A=NA(x+1)+Bx=(A+B)x+A=NA(x+1)+Bx=(A+B)x+A=N

이 성립한다.

먼저 A≠BA\neq BA=B 조건을 잠시 제거한다. S=A+BS=A+BS=A+B라 하자. 위 식은

N=Sx+AN=Sx+AN=Sx+A

가 된다. 1≤S≤N1\leq S\leq N1≤S≤N을 하나 고정하면 나눗셈의 몫과 나머지에 의해 xxx와 AAA가 유일하게 정해지고, 따라서 B=S−AB=S-AB=S−도 유일하게 정해진다. 그러므로 처음에는 의 가지 경우를 생각할 수 있다.

이 중 올바르지 않은 경우를 제거하자.

첫째, A=0A=0A=0인 경우이다. 이는 NNN을 SSS로 나눈 나머지가 000인 경우이므로 SSS가 NNN의 약수인 경우와 정확히 같다.

둘째, A=BA=BA=B인 경우이다. 이때

N=(2x+1)AN=(2x+1)AN=(2x+1)A

이고 S=2AS=2AS=2A이므로

2N=(2x+1)S2N=(2x+1)S2N=(2x+1)S

이다.

SSS가 NNN의 약수이면 2NS\frac{2N}{S}S2N​는 짝수이다. 반대로 A=BA=BA인 경우에는 이 홀수이다. 따라서 두 종류의 잘못된 경우는 서로 겹치지 않는다.

또한 2N2N2N의 양의 약수 SSS 중 S≠2NS\neq2NS=2N인 것은 모두 S≤NS\leq NS≤이다. 이때 가 짝수이면 는 의 약수이므로 인 경우이고, 홀수이면 인 경우이다. 즉, 제거해야 하는 경우의 수는 의 양의 약수 개수에서 자체를 제외한 값이다.

D(M)D(M)D(M)을 MMM의 양의 약수 개수라 하면 정답은

N−D(2N)+1N-D(2N)+1N−D(2N)+1

이다.

D(2N)D(2N)D(2N)은 111부터 2N\sqrt{2N}2N​까지 나누어 보면서 에 구할 수 있다.

정답은 N−D(2N)+1≤N≤1010N-D(2N)+1 \leq N \leq 10^{10}N−D(2N)+1≤N≤1010이므로 항상 부호 있는 646464비트 정수 범위에 들어간다.

Solution written by GPT5.6

A
S=1,2,⋯ ,NS=1,2,\cdots,NS=1,2,⋯,N
NNN
=
B
2NS=2x+1\frac{2N}{S}=2x+1S2N​=2x+1
N
2NS\frac{2N}{S}S2N​
SSS
NNN
A=0A=0A=0
A=BA=BA=B
2N2N2N
2N2N2N
O(N)O(\sqrt N)
O(N​)