#C1014. 爆破
爆破
【题目描述】
给定一个 行 列的由 #,. 组成的地图 。
你有一个初始全为 的超级大二维数组 。
对于一次操作 (你要保证 ,表示:
$$\Large\forall_{i \in \left[ x,x+N-1 \right] \cap \left[1,N\right],j \in \left[ y,y+N-1 \right] \cap \left[1,N\right]} h_{i,j} \gets h_{i,j} - 1$$问能否通过不超过 次操作使得任意的 和 ,若 是 #, 是 .,都有 ,即所有 # 的位置都比 . 的位置小。
如果有请输出方案。
【输入格式】
从 explosion.in 读入数据。
本题单个测试点有多组测试数据。
第一行一个正整数 表示数据组数。接下来,对于每组数据有:
第一行两个正整数 分别表示网格大小以及操作次数的最大值。
接下来 行每行 个字符,第 行第 个字符表示 。
【输出格式】
输出数据到 explosion.out 中。
对于每组数据,首先输出一行一个字符串 Yes 或 No。
Yes 表示能够通过操作满足题目的条件,No 表示不能通过操作满足题目条件。
如果输出 Yes,后面还要输出你的方案,具体如下:
第一行输出一行一个整数 表示有 个操作,你需要保证 ,否则该测试点得零分。
接下来 行,每行两个整数 表示进行一次操作 。
【样例 1 输入】
4
1 2
.
1 2
#
2 8
#.
.#
3 36
...
.#.
...
【样例 1 输出】
Yes
0
Yes
0
Yes
2
0 0
2 2
Yes
4
-114514 -1919810
0 0
0 2
2 0
【样例 2】
见选手目录下的 explosion/explosion2.in 与 explosion/explosion2.ans。
该样例满足测试点 的约束条件。
【样例 3】
见选手目录下的 explosion/explosion3.in 与 explosion/explosion3.ans。
该样例满足测试点 的约束条件。
【数据范围】
对于 的数据,保证:,,。
| 测试点编号 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| A | |||
| B | |||
| 无 | |||
特殊性质 A:只存在一个位置 满足 。
特殊性质 B:只存在一个位置 满足 。
【提示】
提供了 checker.cpp,保证与评测使用的完全不同,不保证能成功判断你的代码正误,你需要通过如下指令使用,正确会说 AC,错误我也不知道会说什么。
打开 powershell 并进入当前文件夹;
编译:g++ checker.cpp -o checker -std=c++14 -Wall -O2
运行:./checker explosion.in explosion.out explosion.ans
explosion.ans 表示答案。
Related
In following contests: