A14519 | Square Filling
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
You are given two matrices $A$ and $B$ . Each matrix contains exactly $n$ rows and $m$ columns. Each element of $A$ is either $0$ or $1$ ; each element of $B$ is initially $0$ .
You may perform some operations with matrix $B$ . During each operation, you choose any submatrix of $B$ having size $2 \times 2$ , and replace every element in the chosen submatrix with $1$ . In other words, you choose two integers $x$ and $y$ such that $1 \le x < n$ and $1 \le y < m$ , and then set $B_{x, y}$ , $B_{x, y + 1}$ , $B_{x + 1, y}$ and $B_{x + 1, y + 1}$ to $1$ .
Your goal is to make matrix $B$ equal to matrix $A$ . Two matrices $A$ and $B$ are equal if and only if every element of matrix $A$ is equal to the corresponding element of matrix $B$ .
Is it possible to make these matrices equal? If it is, you have to come up with a sequence of operations that makes $B$ equal to $A$ . Note that you don't have to minimize the number of operations.
You may perform some operations with matrix $B$ . During each operation, you choose any submatrix of $B$ having size $2 \times 2$ , and replace every element in the chosen submatrix with $1$ . In other words, you choose two integers $x$ and $y$ such that $1 \le x < n$ and $1 \le y < m$ , and then set $B_{x, y}$ , $B_{x, y + 1}$ , $B_{x + 1, y}$ and $B_{x + 1, y + 1}$ to $1$ .
Your goal is to make matrix $B$ equal to matrix $A$ . Two matrices $A$ and $B$ are equal if and only if every element of matrix $A$ is equal to the corresponding element of matrix $B$ .
Is it possible to make these matrices equal? If it is, you have to come up with a sequence of operations that makes $B$ equal to $A$ . Note that you don't have to minimize the number of operations.
输入格式
The first line contains two integers $n$ and $m$ ( $2 \le n, m \le 50$ ).
Then $n$ lines follow, each containing $m$ integers. The $j$ -th integer in the $i$ -th line is $A_{i, j}$ . Each integer is either $0$ or $1$ .
Then $n$ lines follow, each containing $m$ integers. The $j$ -th integer in the $i$ -th line is $A_{i, j}$ . Each integer is either $0$ or $1$ .
输出格式
If it is impossible to make $B$ equal to $A$ , print one integer $-1$ .
Otherwise, print any sequence of operations that transforms $B$ into $A$ in the following format: the first line should contain one integer $k$ — the number of operations, and then $k$ lines should follow, each line containing two integers $x$ and $y$ for the corresponding operation (set $B_{x, y}$ , $B_{x, y + 1}$ , $B_{x + 1, y}$ and $B_{x + 1, y + 1}$ to $1$ ). The condition $0 \le k \le 2500$ should hold.
Otherwise, print any sequence of operations that transforms $B$ into $A$ in the following format: the first line should contain one integer $k$ — the number of operations, and then $k$ lines should follow, each line containing two integers $x$ and $y$ for the corresponding operation (set $B_{x, y}$ , $B_{x, y + 1}$ , $B_{x + 1, y}$ and $B_{x + 1, y + 1}$ to $1$ ). The condition $0 \le k \le 2500$ should hold.
输入输出样例
输入 #1
3 3 1 1 1 1 1 1 0 1 1
输出 #1
3 1 1 1 2 2 2
输入 #2
3 3 1 0 1 1 0 1 0 0 0
输出 #2
-1
输入 #3
3 2 0 0 0 0 0 0
输出 #3
0
The sequence of operations in the first example:
$\begin{matrix} 0 & 0 & 0 & & 1 & 1 & 0 & & 1 & 1 & 1 & & 1 & 1 & 1 \\ 0 & 0 & 0 & \rightarrow & 1 & 1 & 0 & \rightarrow & 1 & 1 & 1 & \rightarrow & 1 & 1 & 1 \\ 0 & 0 & 0 & & 0 & 0 & 0 & & 0 & 0 & 0 & & 0 & 1 & 1 \end{matrix}$
$\begin{matrix} 0 & 0 & 0 & & 1 & 1 & 0 & & 1 & 1 & 1 & & 1 & 1 & 1 \\ 0 & 0 & 0 & \rightarrow & 1 & 1 & 0 & \rightarrow & 1 & 1 & 1 & \rightarrow & 1 & 1 & 1 \\ 0 & 0 & 0 & & 0 & 0 & 0 & & 0 & 0 & 0 & & 0 & 1 & 1 \end{matrix}$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted