Examen preguntas prueba de chip de ejercicio básico (Java)

Examen preguntas prueba de chip de ejercicio básico

Límite de recursos

Límite de tiempo: 1.0s Límite de memoria: 512.0MB

Descripción del problema

  Hay n (2≤n≤20) chips, buenos o malos, se sabe que hay más chips buenos que malos.  Cada chip se puede usar para probar otros chips. Al probar otros chips con un buen chip, puede indicar correctamente si el chip probado es bueno o malo. Cuando se usa un chip malo para probar otros chips, dará resultados aleatorios buenos o malos (es decir, este resultado no tiene nada que ver con la calidad real del chip probado).  Dé los resultados de la prueba de todas las fichas y pregunte qué fichas son buenas.

Formato de entrada

  La primera línea de datos de entrada es un número entero n, que indica el número de chips.  La segunda fila a la n + 1a fila son n * n tablas con n datos en cada fila. Cada dato en la tabla es 0 o 1, y los datos en la i-ésima fila y la j-ésima columna (1≤i, j≤n) en las n-filas representan los resultados de la prueba obtenidos al probar el j-ésimo chip con el i-ésimo chip , 1 significa bueno, 0 significa malo, cuando i = j, siempre será 1 (no significa el resultado de la prueba del chip en sí mismo. El chip no puede probarse a sí mismo).

Formato de salida

  Salida de los números de todos los chips buenos en orden de pequeño a grande

Entrada de muestra

3 1 0 1 0 1 0 1 0 1

Salida de muestra

1 3

Código

1  import java.util.Scanner;
2  import java.util. * ;
3  4 5 público clase principal {
 6 estática int n, a [] [], contar [];
7 8 public static void main (String [] args) {
 9          Scanner sc = new Scanner (System.in);
10          n = sc.nextInt ();
11          a = nuevo int [22] [22 ];
12          cuenta = nueva int [25              
         ];
13          para ( int i = 1; i <= n; i ++ ) {
 14              para ( int j = 1; j <= n; j ++ ) {
 15                  a [i] [j] = sc.nextInt ();
16              }
 17          }
 18              
19          para ( int i = 1; i <= n; i ++ ) {
 20              para ( int j = 1; j <= n; j ++ ) {
 21                  if (i! = J && a [i] [j] == 1 )
 22                      recuento [j] ++ ;
23              }
 24          }
 25         para ( int j = 1; j <= n; j ++ )
 26              if (cuenta [j]> = n / 2 )
 27                  System.out.print (j + "" );
28      }
 29  30 }

 

Resumen

Al principio fue confuso, no sabía qué hacer, y luego escribí una simulación durante mucho tiempo, pero al final no lo hizo. Luego fui a leer los blogs de otros peces gordos y descubrí que se usaba el principio del cajón, pero no entendía bien por qué se puede usar aquí.

En otras palabras, mientras el número de 1> el número de 0, podemos pensar que este chip es bueno. ¡Tan asombroso! Entonces el código es como el anterior.



Supongo que te gusta

Origin www.cnblogs.com/acm-cyz/p/12740326.html
Recomendado
Clasificación