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

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

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

OrBiTal (easy)

返回题目

题解

一个粒子增加的强度总和为 K2K^2K2。设 S=∑AiS=\sum A_iS=∑Ai​,只需检查满足 K2∣SK^2\mid SK2∣S 的候选强度。粒子的峰值为 KKK,因此还必须满足 K≤max⁡AiK\leq\max A_iK≤maxAi​。

固定 KKK,从左到右扫描。扣除之前已经开始的三角形贡献后,当前位置的剩余值就等于从这里开始的三角形数量,因为三角形最左端的系数是 111。如果需要负数个三角形,或者剩余空间不足 2K−12K-12K−1 时仍需开始新的三角形,则不可行。

令 A0=A−1=0A_0=A_{-1}=0A0​=A−1​=0,计算 Ci=Ai−2Ai−1+Ai−2。设 为从位置 开始的三角形数量,将左侧范围外的 视为 ,则可从左到右计算

Xi=Ci+2Xi−K−Xi−2K。X_i=C_i+2X_{i-K}-X_{i-2K}。Xi​=Ci​+2X

检查 0≤Xi≤Ai0\leq X_i\leq A_i0≤Xi​≤Ai​,并在 i>N−2K+2i>N-2K+2i> 时要求 。

设候选数量为 DDD,时间复杂度为 O(ND+N)O(ND+N)O(ND+N),空间复杂度为 O(N)O(N)O(N)。子任务 1 可以检查所有 K≤10K\leq10K≤,时间为 。子任务 2 可以不使用总和筛选,逐个检查所有强度,得到 解法。

证明

考虑最左侧尚未匹配的位置 iii。从更后面开始的三角形不会影响它。扣除此前三角形的贡献后,剩余部分只能由从 iii 开始的三角形填满。由于首项系数为 111,数量被唯一确定。重复这个过程不会漏掉任何可行解。

三角形的二阶差分在起点为 111,在其后 KKK 个位置为 −2-2−,在其后 个位置为 ,所以递推式恰好计算出被强制的数量。如果所有数量非负且起点合法,那么每个完整三角形都在区间内。生成序列和目标序列具有相同的左侧边界值和二阶差分,因此每个位置都相等。

Solution written by GPT6

C_i=A_i-2A_{i-1}+A_{i-2}
Ci​=Ai​−2Ai−1​+Ai−2​
XiX_iXi​
iii
XiX_iXi​
000
i−K
​
−
Xi−2K​。
N−
2K+
2
Xi=0X_i=0Xi​=0
10
O(N)O(N)O(N)
O(N2)O(N^2)O(N2)
2
2K2K2K
111