这道题的思路是:
- 先将所有芯片初始化为未确定状态。
- 对于每个芯片,如果它的测试结果都是 1,那么它一定是好芯片。
- 对于每个芯片,如果它的测试结果都是 0,那么它一定是坏芯片。
- 对于其他的芯片,如果它的测试结果中有好芯片的测试结果是 1,那么它就是好芯片。
代码如下:
```
读入 n
n = int(input())
读入测试结果
test_results = [] for i in range(n): test_results.append(list(map(int, input().split())))
初始化芯片状态(0:未确定,1:好芯片,2:坏芯片)
chip_states = [0] * n
遍历每个芯片
for i in range(n): # 如果测试结果全部为 1,那么它是好芯片 if all(test_results[i]): chip_states[i] = 1 # 如果测试结果全部为 0,那么它是坏芯片 elif not any(test_results[i]): chip_states[i] = 2 # 如果测试结果既有 1 也有 0,那么检查是否有好芯片的测试结果是 1 else: # 遍历这个芯片的测试结果 for j in range(n): # 如果有好芯片的测试结果是 1,那么这个芯片就是好芯片 if test_results[i][j]