Questions de test VIP

Limite de ressources

Limite de temps: 1.0s Limite de mémoire: 512.0 Mo

Description du problème

  Il y a n (2≤n≤20) puces, bonnes et mauvaises, on sait qu'il y a plus de bonnes puces que de mauvaises puces.
  Chaque puce peut être utilisée pour tester d'autres puces. Lorsque vous utilisez une bonne puce pour tester d'autres puces, elle peut dire correctement si la puce testée est bonne ou mauvaise. Lorsque vous utilisez une mauvaise puce pour tester d'autres puces, cela donnera au hasard un bon ou un mauvais résultat de test (c'est-à-dire que ce résultat n'a rien à voir avec la qualité réelle de la puce testée).
  Donnez les résultats des tests de toutes les puces et demandez quelles sont les bonnes.

Format d'entrée

  La première ligne de données d'entrée est un entier n, qui représente le nombre de puces.
  La deuxième ligne à la ligne n + 1 est un tableau de n * n avec n données dans chaque ligne. Chaque donnée du tableau est 0 ou 1. Les données de la i-ème ligne et de la j-ème colonne (1≤i, j≤n) dans les n lignes représentent le résultat du test obtenu lorsque la i-ème puce est utilisée pour tester la j-ème puce, 1 signifie bon, 0 signifie mauvais, et il est toujours 1 lorsque i = j (cela ne signifie pas le résultat du test de la puce sur elle-même. La puce ne peut pas tester sur elle-même).

Format de sortie

  Sortez les nombres de tous les bons jetons dans l'ordre croissant

Exemple d'entrée

3
1 0 1
0 1 0
1 0 1

Exemple de sortie

1 3

 Idées:

De la question «Il y a plus de bons jetons connus que de mauvais jetons.» On peut en déduire: Lorsqu'un bon jeton est jugé par d'autres: le nombre de 0 qu'il contient sera inférieur au nombre de 1. Les jetons relativement mauvais sont jugés par les autres: le nombre de jetons qu'il contient sera inférieur au nombre de zéros.

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	int i,j;
	int a[21][21];
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	for(j=1;j<=n;j++)
	{
		scanf("%d",&a[i][j]);
	}//输入数据 
	int f=0;
	for(j=1;j<=n;j++)
	{
		int sum1=0,sum0=0;
		for(i=1;i<=n;i++)
		{
			if(a[i][j]==1)
			sum1++;
			else
			sum0++;
		}
		if(sum1>sum0)
		{
			if(f==0)
			{
				printf("%d",j);
				f=1;
			}
			else
			printf(" %d",j);
		}
	}
	return 0;
}

 

Je suppose que tu aimes

Origine blog.csdn.net/with_wine/article/details/115023022
conseillé
Classement