[蓝桥杯]试题 基础练习 芯片测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解题思路:

如果芯片i是好的,那么它会被其他好芯片(有至少half个)测出来为好的,所以只要统计每个芯片的被测出是好的次数(包括自己测自己的那次,虽然题目说不是自己测自己,但是谁让你 ==1呢,要是说等于==0,后面 改成>= half就是好的),如果 > half就是好的;反之就是坏的,因为有至少half+1可以测出它是坏的,所以它被测出是好的次数不会大于half

代码:

#include<iostream>

using namespace std;

int main()
{
	int n;
	cin>>n;
	int a[30][30] ={0};
	int dp[30] = {0};
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= n; j++)
		{
			cin>>a[i][j];
			dp[j] += a[i][j];
		}
	}
	int half = n/2;
	for(int i = 1; i <= n; i++)
	{
		if(dp[i] > half)
		{
			cout<<i<<" ";
		}
	}
	return 0;
} 

在这里插入图片描述


版权声明:本文为qq_40691051原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。