CF2118E.Grid Coloring
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个 n×m 的网格,初始时每个格子都是白色的。你需要依次为所有格子染色。每当你染色一个格子时,所有距离它最远的已染色格子会受到一次惩罚。请你给出一种染色顺序,使得没有任何格子的惩罚次数超过 3。
注意,n 和 m 都是奇数。
本题使用的距离度量为“棋盘距离”(Chebyshev 距离),在判定距离相等时,使用“曼哈顿距离”(Taxicab 距离)来决定优先级。具体来说,若有格子 (x2,y2) 和 (x3,y3),对于格子 (x1,y1),如果满足下列条件之一,则认为 (x2,y2) 比 (x3,y3) 更远:
- max(∣x1−x2∣,∣y1−y2∣)>max(∣x1−x3∣,∣y1−y3∣)
- max(∣x1−x2∣,∣y1−y2∣)=max(∣x1−x3∣,∣y1−y3∣) 且 ∣x1−x2∣+∣y1−y2∣>∣x1−x3∣+∣y1−y3∣
可以证明,至少存在一种可行解。

上图展示了在 5×5 网格中染色中心格子后各格子的惩罚变化。数字表示各格子的惩罚次数。
输入格式
每组测试数据包含多个测试用例。第一行包含一个整数 t(1≤t≤100),表示测试用例的数量。
每个测试用例的第一行包含两个奇数整数 n 和 m(1≤n,m≤4999),分别表示行数和列数。
保证所有测试用例中 n⋅m 的总和不超过 5000。
输出格式
对于每个测试用例,输出 n⋅m 行,第 i 行输出你选择的第 i 个染色格子的坐标。若有多种方案,输出任意一种均可。
样例输出中的空行仅为增强可读性,你不需要输出空行。
输入输出样例
输入#1
3 3 3 1 1 1 5
输出#1
2 1 2 3 2 2 1 1 3 2 3 3 3 1 1 3 1 2 1 1 1 2 1 4 1 5 1 1 1 3
说明/提示
在第一个测试用例中,网格可以按如下方式染色:

数字表示各格子的惩罚次数。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?