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

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

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

Thread Cutting

返回题目

题解

서로 다른 x,a,bx,a,bx,a,b에 대해

mid⁡(x;a,b)=[min⁡(a,b)<x<max⁡(a,b)]\operatorname{mid}(x;a,b)=[\min(a,b)<x<\max(a,b)]mid(x;a,b)=[min(a,b)<x<max(a,b)]

로 정의하자. 서로 다른 네 못 a,b,c,da,b,c,da,b,c,d에 대해 현 ababab와 cdcdcd의 교차 여부는

mid⁡(c;a,b)XORmid⁡(d;a,b)\operatorname{mid}(c;a,b)\mathbin{\mathrm{XOR}}\operatorname{mid}(d;a,b)mid(c;a,b)XORmid(d;a,b)

이다.

Ei=PiPi+1E_i=P_iP_{i+1}Ei​=Pi​Pi+1​를 고정하자. 와 의 교차 횟수의 홀짝은 중간 항의 망원 소거로

mid⁡(Pi+2;Pi,Pi+1)XORmid⁡(PR;Pi,Pi+1)\operatorname{mid}(P_{i+2};P_i,P_{i+1})\mathbin{\mathrm{XOR}}\operatorname{mid}(P_R;P_i,P_{i+1})mid(Pi+2​;Pi

가 된다.

Bi=mid⁡(Pi+2;Pi,Pi+1)B_i=\operatorname{mid}(P_{i+2};P_i,P_{i+1})Bi​=mid(Pi+2​;P로 두고 의 XOR 누적 배열 를 만든다. 또한

mid⁡(x;a,b)=[a<x]XOR[b<x]\operatorname{mid}(x;a,b)=[a<x]\mathbin{\mathrm{XOR}}[b<x]mid(x;a,b)=[a<x]XOR[b<x]

이므로 PRP_RPR​에 관한 항을 i=L,⋯ ,R−3i=L,\cdots,R-3i=L,⋯,R−3에 대해 다시 XOR하면 중간 항이 모두 사라지고

mid⁡(PR;PL,PR−2)\operatorname{mid}(P_R;P_L,P_{R-2})mid(PR​;PL​,PR

만 남는다.

따라서 R−L+1≤3R-L+1\leq3R−L+1≤3이면 답은 000이고, 그 외에는

SR−3XORSL−1XORmid⁡(PR;PL,PR−2)S_{R-3}\mathbin{\mathrm{XOR}}S_{L-1}\mathbin{\mathrm{XOR}}\operatorname{mid}(P_R;P_L,P_{R-2})SR−3​XORS

가 답이다. 전처리는 O(N)O(N)O(N), 각 질의는 O(1)O(1)O(1)이며 전체 시간 복잡도는 O(N+Q)O(N+Q)O(N+Q)이다.

Solution written by GPT5

EiE_i
Ei​
Ei+2,Ei+3,⋯ ,ER−1E_{i+2},E_{i+3},\cdots,E_{R-1}Ei+2​,Ei+3​,⋯,ER−1​
​
,
Pi+1​
)
XOR
mid(PR​;Pi​,Pi+1​)
i
​
,
Pi+1​
)
BiB_iBi​
SSS
−
2
​
)
L−1
​
XOR
mid(PR​;PL​,PR−2​)