CF1903B StORage room

题目描述

在塞浦路斯,天气非常炎热。因此,Theofanis 把这看作一个创办冰淇淋公司的好机会。 他通过将冰淇淋锁在大型储藏室中来防止其他冰淇淋生产商的侵扰。然而,他忘记了密码。幸运的是,这个锁为健忘的人设计了一个特殊功能! 它会给你一个 $n$ 行 $n$ 列的非负整数表 $M$,要打开锁,你需要找到一个长度为 $n$ 的数组 $a$,使得: - $0 \le a_i < 2^{30}$, - 对于所有 $i \neq j$,都有 $M_{i,j} = a_i \mid a_j$,其中 $|$ 表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。 这个锁有个漏洞,有时它会给出没有解的表格。在这种情况下,冰淇淋将永远被冻结。 你能找到一个数组来打开这个锁吗?

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^{3}$)——测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^{3}$)——隐藏数组的大小。 接下来的 $n$ 行描述了 $M$ 的每一行,第 $i$ 行包含表格值 $M_{i,1}, M_{i,2}, \ldots, M_{i,n}$($0 \le M_{i,j} < 2^{30}$)。 保证 $M_{i,i} = 0$,且 $M_{i,j} = M_{j,i}$,对于所有 $1 \le i,j \le n$。 还保证所有测试用例中 $n$ 的总和不超过 $10^{3}$。

输出格式

对于每个测试用例,如果存在解,输出 YES 并输出一个满足条件的数组,否则输出 NO。 如果有多个解,输出任意一个即可。 输出答案时大小写均可。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为正面回答。

说明/提示

由 ChatGPT 4.1 翻译