疑问
这题目我觉得做法不对,虽然AC了,但是感觉不对,这题坏芯片的结果是随机的,所以看一个芯片测试结果是不是1大于0的方法并不能判断好坏,一个坏芯片甚至可以测试结果和好芯片一模一样,因为是随机的嘛,如果这题目问的是好芯片最多有多少,那就难多了。
AC的代码就是统计一下那些1的个数大于0的个数的芯片就是好的
#include<bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
int a[n][n], b[n]; memset(b,0,sizeof(b)); //memset是初始化数组的意思。
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
if(a[i][j] == 1) b[j]++; //b数组统计该列出现“1”的次数。
for(int i = 0; i < n; i++)
if(b[i] > n/2) cout << i+1 << ' ';
return 0;
}