DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 账号绑定的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

Tile Covering

返回题目

题解

길이가 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​)