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

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

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

Infinite RGB Tiling

返回题目

题解

原点为红色。其余格子位于 r=max⁡(∣x∣,∣y∣)r=\max(|x|,|y|)r=max(∣x∣,∣y∣) 的正方形外圈上。将红、绿、蓝编码为 0,1,20,1,20,1,2。

将上边的骨牌从左到右编号为 k=0,…,r−1k=0,\ldots,r-1k=0,…,r−1,颜色为 (r+k) mod 3(r+k)\bmod3(r+k)mod3。将右边的骨牌从下到上编号,颜色为 (r+1+k) mod 3(r+1+k)\bmod3(r+1+k)mod3。下边和左边分别与上边和右边绕原点旋转 180180180 度后的颜色相同。

此规则符合最初的绿色骨牌和红色原点。同一骨牌的两个格子得到同一颜色。分别检查同圈相邻骨牌、相邻两圈之间的骨牌以及四个角处的骨牌,按奇偶性及模三余数代入可知,不同的相邻图形颜色始终不同。因此该规则满足全部条件,由唯一性可知它就是所求染色。

上方区域为 y>0y>0y>0 且 −y≤x<y-y\leq x<y−y≤x<y,此时 r=yr=yr=y,k。右方区域为 且 ,此时 ,。若位于下方或左方,先将 变为 。注意对角线上的严格不等号。

每个格子可在 O(1)O(1)O(1) 时间内求出。设总输出面积为 AAA,则时间复杂度为 O(T+A)O(T+A)O(T+A),逐行直接输出时额外空间为 O(1)O(1)O(1)。不能一直模拟到最大的坐标。

子任务 1 可以显式建立骨牌邻接图。固定原点与第一块绿色骨牌,用队列传播:当一个骨牌已有两种不同颜色的邻居时,它只能使用第三种颜色。在此布局中所有颜色都会确定。逐圈考虑,每一圈从接触内圈两种颜色的骨牌开始,其余颜色被依次确定。坐标上限为 CCC 时,时间为 O(C2+A+T)O(C^2+A+T)O(C2+A+T),空间为 O(C2+T)O(C^2+T)O。所附 naive 不使用颜色公式,而是采用此方法。

坐标绝对值不超过 101810^{18}1018。主解法的表达式不超过 2⋅1018+12\cdot10^{18}+12⋅1018+1,独立解法的线性表达式绝对值不超过 4⋅1018+14\cdot10^{18}+1,有符号 位整数足够。输入验证程序先用除法检查面积上限,再进行乘法。

Solution written by GPT6

=⌊(x+y)/2⌋k=\lfloor(x+y)/2\rfloor
k=⌊(x+y)/2⌋
x>0x>0x>0
−x<y≤x-x<y\leq x−x<y≤x
r=xr=xr=x
k=⌊(x+y−1)/2⌋k=\lfloor(x+y-1)/2\rfloork=⌊(x+y−1)/2⌋
(x,y)(x,y)(x,y)
(−x,−y)(-x,-y)(−x,−y)
(
C2
+
T)
4
⋅
1018+
1
646464