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

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

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

OrBiTal (hard)

返回题目

题解

S=∑i=1NAiS=\sum_{i=1}^{N}A_iS=∑i=1N​Ai​라 하자. 세기 KKK인 입자 하나는 총 K2K^2K2를 더하므로 K2∣SK^2\mid SK2∣S인 후보만 확인한다.

XiX_iXi​를 iii번 오비탈에 넣은 입자 수라 하고 인덱스를 1,…,N1,\ldots,N1,…,N에서 순환시킨다. Ci=Ai−1−2Ai+A를 계산하면 이다. 개의 순환을 각각 길이 의 수열로 펼친다. 차분을 한 번 적분하고 순환 조건으로 초기 기울기를 정한 뒤 다시 적분한다. 순환마다 기본 해에 상수를 더하는 자유도가 남는다.

기본 해 전체의 합을 BBB, 각 순환의 최솟값의 부호를 바꾸어 더한 값을 LLL이라 하자. 필요한 입자 수는 P=S/K2P=S/K^2P=S/K2이다. (P−B)(P-B)(P가 의 배수이고 일 때 가능하다.

후보 수를 DDD라 하면 시간 복잡도는 O(ND+N)O(ND+N)O(ND+N), 공간 복잡도는 O(N)O(N)O(N)이다.

증명

삼각형 커널의 이차 차분은 중앙에 −2-2−2, 양쪽으로 KKK칸 떨어진 곳에 111만 남긴다. 한 순환에서 pt=yt−yt−1p_t=y_t-y_{t-1}pt​=라 두면 이다. 이어야 기울기가 순환하고, 이 초기 기울기를 유일하게 결정한다. 정수 기울기가 존재하지 않으면 불가능하다.

서브태스크 1에서는 입자의 세기가 최댓값 max⁡Ai≤3\max A_i\leq3maxAi​≤3보다 클 수 없으므로 세 후보만 확인한다.

서브태스크 2에서 공차를 ddd라 하자. d=0d=0d=0이면 gcd⁡(이 의 배수인지 확인한다. 이면 이어야 한다. , 라 두면 기본 해의 합은 이고, 최소 비음수 해의 합은 이다. 따라서 및 만 확인하여 후보 하나를 에 처리한다.

i+1C_i=A_{i-1}-2A_i+A_{i+1}
Ci​=Ai−1​−2Ai​+Ai+1​
Ci=Xi−K−2Xi+Xi+KC_i=X_{i-K}-2X_i+X_{i+K}Ci​=Xi−K​−2Xi​+Xi+K​
g=gcd⁡(N,K)g=\gcd(N,K)g=gcd(N,K)
m=N/gm=N/gm=N/g
−
B)
mmm
(P−B)/m≥L(P-B)/m\geq L(P−B)/m≥L
yt​−
yt−1​
pt+1−pt=ctp_{t+1}-p_t=c_tpt+1​−pt​=ct​
∑ct=0\sum c_t=0∑ct​=0
∑pt=0\sum p_t=0∑pt​=0

두 번째 적분으로 얻는 정수 해는 같은 순환에 상수를 더하는 것 외에는 유일하다. 그 상수는 기본 해의 최솟값의 부호를 바꾼 값 이상이어야 하고, 입자 수를 mmm배만큼 증가시킨다. 따라서 제시한 합동 조건과 하한이 비음수 정수 해의 필요충분조건이다. 이 해가 만드는 세기와 AAA는 이차 차분과 합이 같다. 원 위에서 이차 차분이 000인 수열은 상수이므로 두 세기는 같다.

등차수열의 공차가 d≠0d\ne0d=0이면 C1=NdC_1=NdC1​=Nd, CN=−NdC_N=-NdCN​=−Nd만 000이 아니다. 두 위치가 서로 다른 순환에 속하면 각 순환의 CCC의 합이 000일 수 없으므로 gcd⁡(N,K)=1\gcd(N,K)=1gcd(N,K)=1이어야 한다. 위치 111에서 출발하여 KKK씩 이동할 때 위치 NNN은 r≡−K−1(modN)r\equiv-K^{-1}\pmod Nr≡−K−1(modN)번째에 나타난다. 이 순환의 기본 해는 높이 h=dr(N−r)h=dr(N-r)h=dr(N−r)인 두 선형 구간으로 이루어져 합이 B=Nh/2B=Nh/2B=Nh/2이고 최솟값은 min⁡(0,h)\min(0,h)min(0,h)이다. 따라서 최소 비음수 해의 합이 ∣B∣|B|∣B∣이며, 상수를 더해 늘릴 수 있는 합은 NNN의 배수이다. d=0d=0d=0이면 모든 순환의 기본 해가 000이므로 필요한 조건은 m∣Pm\mid Pm∣P, 즉 K2∣gcd⁡(N,K)A1K^2\mid\gcd(N,K)A_1K2∣gcd(N,K)A1​이다.

N,K)A1\gcd(N,K)A_1
gcd(N,K)A1​
K2K^2K2
d≠0d\ne0d=0
gcd⁡(N,K)=1\gcd(N,K)=1gcd(N,K)=1
r≡−K−1(modN)r\equiv-K^{-1}\pmod Nr≡−K−1(modN)
1≤r<N1\leq r<N1≤r<N
B=dNr(N−r)/2B=dNr(N-r)/2B=dNr(N−r)/2
∣B∣|B|∣B∣
P≥∣B∣P\geq|B|P≥∣B∣
P≡B(modN)P\equiv B\pmod NP≡B(modN)
O(log⁡N)O(\log N)O(logN)

Solution written by GPT6