[Escrito en línea programación paso en la fosa] --- DO FAQ

introducción

Recientemente participó en varias pruebas escritas, puede ser insuficiente para prepararse para ella, está sujeta a un número de entrada y salida tropezado, perdiendo mucho tiempo, e incluso algunas preguntas directas de 0 casos de prueba, sino a sus propios algoritmos y código absolutamente ningún problema, abajo opinión información, cuidadosamente peinado comparten algunas preguntas comunes sobre las entradas y salidas para todos.

red bull-off

Estoy seguro de que el ganado pequeño off socios de la red están familiarizados con ella, "a la entrada, neto de vaca al cliente en línea", superior con un concurso en entradas y salidas, me siento muy bien, sobre todo para alguien como yo Programación "blanco" a dijo ejercicio útil problema de entrada-salida común! ! !
Ganado de entrada de la red y la práctica de salida (Haga clic para entrar: https: //ac.nowcoder.com/acm/contest/320)
Aquí Insertar imagen Descripción

concepto de DO

juez de línea, referido como DO, es condenado a un sistema de pregunta en línea. Los usuarios pueden enviar en línea una variedad de código de programa (por ejemplo: C, C ++, Java, Python, etc.), el código fuente del sistema se compila y ejecuta, y verificar la corrección del código fuente del programa, los casos de prueba a través prediseñado. Ahora ampliamente utilizado en todo programa de entrenamiento diseñado para enviar automáticamente juez, así como diversos concursos (como ACM) y otras operaciones de los estudiantes universitarios mundo.

principio DO

Programa presentado por los usuarios en los sistemas DO estará sujeto a restricciones más estrictas cuando se realiza, incluyendo las limitaciones de tiempo de ejecución, las restricciones de uso de memoria y las restricciones de seguridad. Los resultados de la ejecución del programa de usuario serán capturados y sistemas DO guardados, luego se transfieren a un programa de árbitro. La diferencia entre si el árbitro o el programa compara el programa de usuario y los datos de salida de la salida normal de la muestra, o para verificar los datos de salida satisface programa de usuario A ciertas condiciones lógicas. Por último, el sistema vuelve a un estado del usuario: a través de, respuesta incorrecta, las horas extraordinarias, excede el límite de salida, super memoria, errores de ejecución, errores de formato, o no compilar, el uso y el retorno a la memoria de programa, tiempo de ejecución y otra información.

ciclo de entrada y salida de procesamiento Preguntas frecuentes

1. ¿Por qué necesitamos el ciclo de entrada y de salida : Generalmente DO Para cada pregunta hay .En y .out archivos, respectivamente, los datos de entrada y de salida de la prueba. Si todos los datos son sólo algunos problemas de programación en un .in y una .out, por lo que se convertirá en más de un conjunto de pruebas, por lo que el código de procesamiento de bucle requiere la presentación.

2, el tratamiento : De hecho, este problema se puede evitar, el problema de programación es el fondo de cada muestra para hacer un conjunto correspondiente de .in y .out archivos, de manera que se convierta en un único conjunto de pruebas, el código no requiere ciclo de tratamiento, pero la práctica habitual tema de calidad variable, se producirá este problema. Código dentro del proceso de bucle que incluso un solo conjunto de pruebas será ningún problema, por lo que con el fin de ser perezoso, se puede escribir un ciclo de tratamiento completo.

3, a cielo : si varios conjuntos de datos de prueba, sino que pasan a necesitar algo de código dentro de matriz de variables mapa, juego, etc., dentro del bucle debe recordar a vaciar, o puede ocurrir en frente de la muestra de ensayo afecta a la respuesta a los datos de seguimiento .

Para algunos conocimientos básicos de los distintos idiomas

1, la gente pregunta a menudo usan C / C ++ para escribir proceso estándar, los datos también fabricados por procesos estándar, a fin de utilizar la misma gente con el tema de la lengua sería más seguro

2, la eficiencia de C / C ++ es relativamente alta, generalmente hablando generalmente DO durante un tiempo tema distingue límite entre C / C ++ y otros idiomas, típicamente enfoque se supone que C / C límite ++ es 1s, otros idiomas darán el doble de tiempo, aún más.

3,Sobre cin cout y scanf printf. Hacer pregunta cuándo hacer uso de printf scanf. Aquí para contar un poco de sentido común, no se sorprenda: en el caso de gran cantidad de datos cin mucho más lento que cout printf scanf. Una vez que la gran cantidad de datos encontrados, es posible leer en tan sólo arrodillado a cabo. Es posible que pueda usar std :: ios :: sync_with_stdio (falso); Esta instrucción cin y scanf Desactivar la sincronización, velocidad eficiencia. Pero aún así cin más lenta, y una vez que tengamos esta declaración, scanf y cin mezcla podrían causar algunos errores extraños

4, relacionado con Java: Java es probablemente la eficiencia global de más de dos veces más lento que C / C ++, pero escrito en la programación Java que tampoco es un problema, sobre todo para hacer frente a la situación de las diversas entradas y salidas.

5, pitón, etc., en otros idiomas, el problema de programación debe hacer en primer lugar su propio método de lectura de la práctica más diferentes formatos de datos en la plataforma, no es la eficiencia puede ser baja, hay algunos otros idiomas demasiado rico conjunto de características que codifican el código final para una variedad de funciones realizadas, por escrito o entrevistador oficial algoritmo de estudio no quiere ver a este código.

6,La matriz es preferiblemente de espacio abierto rango de datos conforme a los requisitos, puede causar un error de tiempo de ejecución, si la profundidad es código recursión espacio de pila demasiado profundo puede causar erro tiempo de ejecución críticor.

Sobre el formato de salida

1, el final de la línea de espacio: por ejemplo, la necesidad de salida I para imprimir más que el número requerido separados por espacios, reciclamos printf ( "% d", x ); esto será muy conveniente, pero dará lugar a la final de la línea los sistemas de más de un espacio, back-office será más estricto que para su producción y archivo .out, también condenado por error
2, problemas de la línea, para cada muestra, se recomienda después de la salida completa se envuelve. Para algunos problemas, probablemente no envoltura ha llevado a la parte posterior de la dislocación de datos de entrada, no será posible antes.

Sobre el análisis de complejidad de tiempo

En términos generales algoritmo sistema general 1s puede ejecutar la orden es menos que 1E8, también lo hacen los problemas cuando la eficiencia de los algoritmos de evaluación es muy importante, determinan directamente su enfoque será aprobada, por supuesto, se trata de las C / C ++ estándar, los demás tomar un lenguaje propio multiplicador de tiempo. .

Por ejemplo, temas tales como n = 1e5, entonces sé que puede ser muy sensible al algoritmo requiere un O (n) o O (nlogn). La complejidad de la plaza directa de tiempo de espera!

Sobre "Soy un pase local, para pagar hasta que está mal."

Presentadas sin éxito, por lo general dos situaciones :

  1. Código sintaxis problema, lo que resulta en diferentes compilado
    a. cepillar más la cuestión, los errores comunes acumulados
    b. Evitar el uso de alguna función impar, o una función asociada con la plataforma
    c. vs mejor no utilizar para escribir el algoritmo, Vs es el modo por defecto en Windows, el general DO el compilador puede no ser reconocido
  2. El código se compila correctamente, presentó sin éxito
    a. Ver salida de información de éxito, el formato de salida no pasa una prueba o
    b. Para la prueba no puede adoptarse, por lo general no puede ser utilizado por la realización mostrada, y luego proporcionar una salida de programa de acuerdo con la salida, la salida y resultados de la prueba, comprobar la pieza de código incorrecto.
    c. No comprueba hacia fuera, uno por uno proceso de prueba
  3. El compilador puede realizar usted mismo, pero no por la DO
    Si algunos estudiantes van a decir, en su propio compilador puede ejecutar a través del código, pero no puede ser presentado en el DO en la parte superior de las razones de que? Hay tales problemas
    muchos, como ninguna inspección pasado argumento legítimo, tales como: puntero nulo ninguna frase y así sucesivamente. Este problema es sobre todo un problema de estos límites

Incorporada aquí como referencia a partir de (https://www.nowcoder.com/discuss/8632)

Publicado 57 artículos originales · ganado elogios 301 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/L19002S/article/details/105069436
Recomendado
Clasificación