#P13832. [awtf2024]Colorful Stamps

    ID: 13033 传统题 4000ms 512MiB 尝试: 3 已通过: 1 难度: 9 上传者: 标签>CF2600构造动态规划并查集贪心模拟

[awtf2024]Colorful Stamps

题目描述

你需要解决 T T 个测试用例中的一个问题。

有一个 N×N N \times N 的棋盘。第 i i 行第 j j 列的格子记作格子 (i,j) (i,j) 。初始时,所有格子都是无色的。

你拥有 N2 N^2 种不同的印章。对应每个整数对 (h,w)(h, w),其中 1h,wN1 \leq h, w \leq N,都有一个大小为 h×w h \times w 的印章,简称印章 (h,w)(h, w)。所有印章的颜色各不相同。

“使用印章 (h,w)(h, w)”这一操作指的是:

  • 选择一个位置 (a,b)(a, b),满足 1aNh+11 \leq a \leq N-h+11bNw+11 \leq b \leq N-w+1。然后用印章 (h,w)(h, w) 的颜色覆盖格子 (i,j)(i, j),其中 aia+h1a \leq i \leq a+h-1bjb+w1b \leq j \leq b+w-1。若一个格子已被涂上其他颜色,将被新颜色覆盖。

你的目标是通过每个印章使用一次,使得最终棋盘上每个格子的颜色都不相同。

你已经使用了 KK 个印章,第 ii 个使用的印章为 (Hi,Wi)(H_i, W_i),其位置为 (Ai,Bi)(A_i, B_i)

请展示一种方案,利用剩余的 N2KN^2 - K 个印章实现目标。请注意,题干保证输入的每个测试用例都能通过恰当的方法完成任务。

输入格式

输入通过以下格式提供:

TT case1case_1 case2case_2 \ldots caseTcase_T

每个测试用例格式如下:

NN KK H1H_1 W1W_1 A1A_1 B1B_1 H2H_2 W2W_2 A2A_2 B2B_2 \ldots HKH_K WKW_K AKA_K BKB_K

输出格式

对于每个测试用例,输出以下格式的方案:

h1h_1 w1w_1 a1a_1 b1b_1 h2h_2 w2w_2 a2a_2 b2b_2 \ldots hN2Kh_{N^2-K} wN2Kw_{N^2-K} aN2Ka_{N^2-K} bN2Kb_{N^2-K}

这表示(除了已经使用的 KK 个印章外),第 ii 个使用的印章是 (hi,wi)(h_i, w_i),其位置是 (ai,bi)(a_i, b_i)

输入输出样例 #1

输入 #1

4
2 2
2 2 1 1
1 2 2 1
2 0
3 3
3 3 1 1
3 2 1 2
2 3 1 1
5 15
5 5 1 1
4 5 2 1
5 4 1 1
4 4 2 1
3 5 3 1
2 5 4 1
1 5 4 1
5 3 1 1
3 4 3 1
2 4 3 1
4 3 2 1
1 4 4 1
3 3 3 1
2 3 4 1
1 3 5 1

输出 #1

2 1 1 1
1 1 2 1

2 2 1 1
2 1 1 1
1 2 1 1
1 1 1 1

2 2 1 2
3 1 1 2
1 3 2 1
1 2 2 1
2 1 1 2
1 1 1 2

5 2 1 1
4 2 1 1
3 2 1 1
5 1 1 1
2 2 1 1
4 1 1 1
1 2 1 1
3 1 1 1
2 1 1 1
1 1 1 1

说明/提示

  • 1T1 \leq T
  • 2N4002 \leq N \leq 400
  • 0K<N20 \leq K < N^2
  • 1Hi,WiN1 \leq H_i, W_i \leq N
  • 1AiNHi+11 \leq A_i \leq N-H_i+1
  • 1BiNWi+11 \leq B_i \leq N-W_i+1
  • (Hi,Wi)(Hj,Wj)(H_i, W_i) \neq (H_j, W_j)iji \neq j
  • 所有测试用例中 N2N^2 的总和不超过 160,000160,000
  • 输入保证可以通过某种方法实现目标
  • 所有输入均为整数

样例解释

以第一个测试用例为例。(包括已经使用的 KK 个印章在内)如果我们用 ii 表示第 ii 次使用印章后的颜色变化,棋盘的状态变化如下:

.. -> 11 -> 11 -> 31 -> 31
..   (2,2,1,1)    11
      (1,2,2,1)    22
      (2,1,1,1)    32
      (1,1,2,1)    42

注意,输出示例为了便于阅读在测试用例之间添加了额外的换行符,但这不是必须的(当然加上也可以)。