AT_future_fif_digital_days_open_a future_fif_digital_days_open_a

题目描述

在一个 $N \times N$ 的棋盘上,有 $B$ 种多连块。这些多连块可以放置在棋盘上,使得被它们覆盖的区域变为可通行。棋盘上有 $K$ 个格子被标记,初始时所有格子都是不可通行的。我们的目标是通过放置多连块,使得所有标记格子连通。 例如,在下面的图中,中间两个标记是连通的,但上面的标记与下面的不连通。 ![](https://img.atcoder.jp/future-fif-digital-days/b490bb01158a72323fc4b1072acff8ef.svg) 多连块不能旋转,不能超出棋盘边界,也不能重叠放置。每种多连块 $b$ 都有一个放置费用 $C_b$。当使用 $m_b$ 个多连块 $b$ 时,总费用为 $\sum_{b=1}^B C_b m_b$。请尽可能减少费用,使所有标记格子连成一片。

输入格式

从标准输入中按如下格式获取输入: > $N$ $K$ $B$ > $i_1$ $j_1$ > $\vdots$ > $i_K$ $j_K$ > $n_1$ $m_1$ $C_1$ > $s^1_{1,1}$ $\ldots$ $s^1_{1,m_1}$ > $\vdots$ > $s^1_{n_1,1}$ $\ldots$ $s^1_{n_1,m_1}$ > $\vdots$ > $n_B$ $m_B$ $C_B$ > $s^B_{1,1}$ $\ldots$ $s^B_{1,m_B}$ > $\vdots$ > $s^B_{n_B,1}$ $\ldots$ $s^B_{n_B,m_B}$ - 第1行包含整数 $N$、$K$ 和 $B$,分别表示棋盘大小、标记格子数目和多连块种类数。所有测试用例中,$N$ 固定为 50。 - 接下来的 $K$ 行,每行包含一对整数 $(i_p, j_p)$,表示第 $p$ 个标记格子的坐标,满足 $0 \leq i_p \leq N-1$ 和 $0 \leq j_p \leq N-1$,并且这些坐标是互不相同的。 - 接下来的部分描述每种多连块的详细信息: - $n_b$ 和 $m_b$ 是第 $b$ 种多连块的最小包围矩形(bounding box)的高度和宽度。保证 $n_1 = m_1 = 1$。 - $C_b$ 表示放置一个第 $b$ 种多连块的费用,是一个正整数。 - $s^b_{i,j}$ 表示第 $b$ 种多连块在其边界内第 $i$ 行、第 $j$ 列的信息。`#` 表示是多连块的一部分,`.` 表示不是。 每个多连块都是连通的。

输出格式

输出格式如下:第一行输出你使用的多连块总数 $m$,接下来 $m$ 行,每行给出一个多连块的种类编号 $b_i$ 和其左上角坐标 $(x_i, y_i)$。 > $m$ > $b_1$ $x_1$ $y_1$ > $\vdots$ > $b_m$ $x_m$ $y_m$

说明/提示

### 得分 总费用为 $S$ 时,得分为 $\mathrm{round}(10^8 / S)$。如果输出不正确(标记格子不连通,多连块超出棋盘边界或重叠),将被判定为错误。若有任何测试未通过,总得分为0。最终排名由比赛中的最高分决定,比赛结束后不进行验证测试。平分时先提交者排名更高。 ### 测试用例数量 1个 ### 输入生成方式 A问题的测试用例数量为1,与输入示例1相同。可以提前计算结果并提交。 ### 工具 - [在线可视化及输入生成器](https://img.atcoder.jp/future-fif-digital-days/visYp.html?q=a) - [本地运行版可视化及输入生成器](https://img.atcoder.jp/future-fif-digital-days/dd7a70773bb74f0570cdde81b1bf6ee3.zip):需先安装 [Rust](https://www.rust-lang.org/ja) 编译环境。 **本翻译由 AI 自动生成**