DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord連携を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

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​)