#3038. OR in Matrix

OR in Matrix

OR in Matrix

题目描述

我们定义逻辑 OROR 为对两个逻辑值(即属于集合 {0,1}\{0,1\} 的值)的一种运算,当这两个逻辑值中有一个或两个等于 11 时结果为 11,否则为 00。我们可以用同样的方式定义三个及以上逻辑值的逻辑 OROR:

其中 等于 11 当且仅当某个 ai=1a_i=1,否则为 00。

Nam 有一个 mm 行 nn 列的矩阵 AA。行从 11 到 mm 编号,列从 11 到 nn 编号。第 ii 行第 jj 列的元素记做 AijA_{ij}。AA 的所有元素均为 00 或 11。Nam 用如下公式从矩阵 AA 得到另一个同样大小的矩阵 BB:

也就是说,BijB_{ij} 等于矩阵 AA 的第 ii 行和第 jj 列所有元素的逻辑 OROR。

Nam 给出了矩阵 BB,让你猜出原始的矩阵 AA。不过,Nam 可能在计算 BB 的过程中犯了错误,因为 AA 可能很大。

输入格式

第一行包含两个整数 mm 和 nn(1≤m,n≤1001 \leq m, n \leq 100),表示矩阵的行数和列数。

接下来 mm 行,每行包含 nn 个整数,以空格分隔,描述矩阵 BB 的每一行(每个元素为 00 或 11)。

输出格式

输出第一行为 “NO”,如果 Nam 在计算 BB 的过程中有错误;否则输出第一行为 “YES”,并接着输出 mm 行 nn 个整数表示可以得到给定矩阵 BB 的矩阵 AA(如果有多个解,输出任意一个解均可)。

输入输出样例 #1

输入 #1

2 2
1 0
0 0

输出 #1

NO

输入输出样例 #2

输入 #2

2 3
1 1 1
1 1 1

输出 #2

YES
1 1 1
1 1 1

输入输出样例 #3

输入 #3

2 3
0 1 0
1 1 1

输出 #3

YES
0 0 0
0 1 0

说明/提示

由 ChatGPT 5 翻译