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 翻译