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

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

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

三维爬梯游戏

返回题目

题解

对于每个终点 iii,设 pip_ipi​ 为应到达该位置的起点编号(从 000 开始),初始设置 di=i−pid_i=i-p_idi​=i−pi​。将圆周展开到无限直线上,可以通过给 did_idi​ 加上 NNN 的整数倍来表示同一终点的不同展开位置。

如果存在 du−dv>Nd_u-d_v>Ndu​−dv​>N,就让 dud_ud 减去 ,同时让 加上 。这一操作保持位移之和不变,也不会增加所需的交叉次数。反复执行,直到最大位移与最小位移之差不超过 。

令 xi=pi+dix_i=p_i+d_ixi​=pi​+di​。对于 ,这两条路径之间的最少交叉次数为

∣⌊xi−xj−1N⌋+[pi<pj]∣.\left|\left\lfloor\frac{x_i-x_j-1}{N}\right\rfloor+[p_i<p_j]\right|.​⌊Nx

其中 [P][P][P] 在条件 PPP 成立时为 111,否则为 000。对全部 i<ji<ji<j 求和即可。对于负数,必须使用数学上的向下取整除法,而不能使用向零截断的整数除法。

每次选择最大和最小位移时,同一位置无需调整两次,因此调整次数为 O(N)O(N)O(N)。每次调整耗时 O(N)O(N)O(N),枚举所有位置对耗时 O(N2)O(N^2)O(N2)。总时间复杂度为 O(N2)O(N^2),额外空间复杂度为 。

Solution written by GPT6

u
​
NNN
dvd_vdv​
NNN
NNN
i<ji<j
i<j
i
​
−
xj​
−
1
​
⌋
+
[
pi​
<
pj​
]
​
.
O(N2)
O(N)O(N)O(N)