¿Cómo funciona la puntuación para el USACO? Por ejemplo, si una estudiante obtiene la mitad de los casos de prueba correctos, ¿obtendría el 50% de la puntuación total, o los casos de prueba se clasifican según el peso en función de sus dificultades?

Aquí están las instrucciones y reglas oficiales del concurso: Instrucciones y reglas del concurso de Olimpiadas de Computación de EE. UU.

Estas son las reglas oficiales con respecto a las presentaciones y calificaciones.

Aquí están las pautas básicas de puntuación y evaluación:

Cada concurso tiene típicamente 3-4 problemas a los que enviará programas de solución en C, C ++, Pascal, Java o Python. Los problemas son de naturaleza algorítmica, por lo que podrían ser necesarios algoritmos inteligentes y / o estructuras de datos para resolver todos los casos de prueba correctamente y dentro de los límites de tiempo. Su puntaje para cada problema depende de la cantidad de casos de entrada que su programa pueda resolver dentro del límite de tiempo (para la mayoría de los concursos, 2 segundos por caso de entrada para C, C ++ y Pascal, y 4 segundos por caso de entrada para Java y Python, aunque Cada concurso o problema puede usar límites ligeramente diferentes). Todas las declaraciones de problemas pretenden ser sencillas, sin “trucos ocultos” intencionales (sin embargo, tenga en cuenta que los conjuntos de datos legales pero complejos son un juego justo para probar). Los problemas están destinados a ser un reto; ¡rara vez es el caso de que una gran cantidad de competidores reciban puntajes casi perfectos!

Cuando envíe un programa, se ejecutará en una serie de casos de prueba de evaluación y para cada uno, recibirá comentarios, que se muestran en un cuadro de color: verde para el correcto y rojo para el incorrecto. Los envíos incorrectos se diferencian aún más por el tipo de problema: X (respuesta incorrecta), T (límite de tiempo excedido),! (error en tiempo de ejecución o límite de memoria excedido), E (archivo de salida vacío) o M (archivo de salida faltante). Si su programa no se compila, se le mostrarán los mensajes de error del compilador. El primer caso de prueba suele ser el mismo que el caso de muestra descrito en la declaración del problema, y ​​debe resolverlo correctamente antes de recibir comentarios sobre los casos restantes (que no se revelan durante el concurso, aunque reciba comentarios sobre si Los resolviste o no). Los jueces se reservan el derecho de agregar o eliminar casos de prueba después del final del concurso, por lo que todavía vale la pena probar su programa, incluso si pasa todos los casos durante el concurso.

Si logra un puntaje particularmente alto (a menudo se requiere que sea un puntaje perfecto) durante un concurso, puede calificar para una promoción “en concurso”; de lo contrario, las promociones se otorgarán una vez que finalice el concurso a todos los participantes con puntajes superiores al umbral de promoción para ese concurso. Si recibe una promoción dentro del concurso, podrá comenzar a trabajar en el próximo concurso en cualquier momento dentro de la ventana más grande del concurso y con un temporizador completo; es decir, el tiempo que pasó en el concurso anterior no cuenta en comparación con el tiempo que tendrá que resolver el próximo concurso.

Aquí están los detalles técnicos que pueden afectar su puntaje:

  • Su programa debe tener un tamaño inferior a 100.000 bytes y debe compilarse en 30 segundos o menos. A menos que se indique lo contrario, sus programas estarán limitados a aproximadamente 256 MB de uso total de memoria.
  • No envíe programas que abran archivos de datos que no estén relacionados con la tarea del concurso en cuestión. Lea solo los archivos de entrada especificados y escriba solo los archivos de salida especificados. No utilice archivos de datos ‘temporales’.
  • A menos que se indique lo contrario, los programas deben ser de naturaleza determinista y producir respuestas idénticas cada vez que se ejecuten con entradas o entradas idénticas. Los programas que no son deterministas pueden ser descalificados. Tenga en cuenta que aún se pueden ingresar programas basados ​​en números aleatorios; deben usar una semilla fija para que obtengan la misma respuesta cada vez.
  • A menos que se especifique lo contrario, NO se garantiza que todos los conjuntos de datos legales posibles sean perfectamente solucionables dentro del límite de tiempo (por ejemplo, podemos proporcionar una tarea en la que se esperan soluciones casi óptimas y recibir crédito parcial).
  • Aunque normalmente diseñamos problemas para que las respuestas numéricas se ajusten a un entero estándar de 32 bits, esto no está garantizado. Si se necesitan tipos de datos más grandes (por ejemplo, enteros de 64 bits), a menudo tomamos nota de esto en la declaración del problema para su conveniencia, pero en última instancia, es su responsabilidad darse cuenta de cuándo son necesarios.
  • Los programas que consistan esencialmente en nada más que declaraciones impresas serán descalificados. Si se proporciona retroalimentación para ciertos casos de prueba durante un concurso, NO debe enviar programas repetidos que consistan esencialmente en declaraciones impresas para aplicar ingeniería inversa a las entradas. Los programas deben calcular las respuestas solicitadas, no solo imprimir los resultados de una tabla de búsqueda precalculada.
  • Los programas no deben detenerse y esperar a que se presionen las teclas. Por ejemplo, si llama al sistema (“pausa”) desde su código, el entorno de calificación podría agotar la espera de una pulsación de tecla inexistente, devolviendo un error como “archivo de salida vacío”.
  • Para los idiomas compilados, no es necesario eliminar todas las advertencias del compilador. Los errores del compilador, por supuesto, evitarán que su sumisión sea juzgada.
  • Si, con el tiempo, envía más de una solución para un solo problema, solo se calificará la última presentada. Eso significa que si encuentra un error después de su envío, puede volver a enviarlo. No hay penalización por volver a enviar (aunque, por favor, sea razonable con su tasa de reenvíos para reducir la carga en el servidor). Por supuesto, una vez que su temporizador haya caducado, no se podrán enviar más soluciones.
  • Los jueces se reservan el derecho de aumentar los límites de tiempo o agregar / eliminar casos de prueba durante la calificación para producir resultados finales.
  • La decisión de los jueces es definitiva.

Mi respuesta / tl; dr: el juez de calificaciones de USACO puntúa sus programas de un total de 1000 puntos. Todos los casos de prueba son iguales en puntos, independientemente de la dificultad y el tamaño. Los casos de prueba que pases te otorgarán puntos. Su puntaje final es la suma de todos los puntos que gana. Si obtiene el 50% de los casos de prueba, ganará 500 puntos en el concurso.

¡Te deseo la mejor de las suertes en tus concursos de programación competitivos!

Los concursos de USACO contienen 3–4 problemas (siempre tres en los últimos años, pero ha variado en el pasado), y el puntaje máximo siempre es 1000. Los 1000 puntos se dividen en partes iguales entre los problemas y los puntos de cada problema se dividen en partes iguales en la prueba casos. Entonces, si resolviera el 50% de los casos de prueba en un problema con un concurso con tres problemas, obtendría (1000/3) / 2 ~ = 167 puntos.

Es irrelevante para la pregunta general en cuestión, pero un dato interesante: el USACO parece estar haciendo la transición a un sistema de clasificación de estilo más similar al IOI. Sobre dos problemas en el US Open 2017, los organizadores garantizaron ciertas propiedades de un cierto porcentaje de los datos de prueba, de manera muy similar a cómo en el IOI se le otorgan ciertos porcentajes de los puntos disponibles para resolver el problema con una cierta limitación. (Ejemplo: en uno de los problemas, se pidió a los estudiantes que escribieran un intérprete para un lenguaje de programación básico. Los organizadores del concurso garantizaron que en el 20% de los casos de prueba, los bucles no se anidarían).

More Interesting

Cómo terminar la nueva sección de lectura del SAT a tiempo y obtener una buena puntuación en ella

Estoy tomando el examen SAT en junio. Mis simulacros comienzan el 25 de mayo y también tengo que prepararme para ello. Entonces, ¿cómo debo prepararme para el SAT?

¿Cuántas pruebas de SAT se necesitan para ir a la Universidad de Harvard?

¿Es posible eliminar los puntajes del SAT de los datos de la universidad después de que los haya enviado a las universidades?

¿Por qué las universidades no ofrecen sus propias pruebas estandarizadas, como alternativa al GRE?

¿Cuál es más difícil el ACT o SAT?

¿Cuál es la manera de hacer una estrategia para tomar GMAT adecuada a nuestras fortalezas y debilidades?

Mi fecha límite de solicitud es el 3 de enero. ¿Debo usar la entrega normal o expresa para enviar mis calificaciones del SAT?

¿Es 1080 de 1440 una buena puntuación de PSAT 8/9? Tengo el percentil 88. ¿Alguna vez puedo obtener una puntuación perfecta?

¿Un puntaje de ensayo relativamente malo en el Nuevo SAT perjudicaría mis posibilidades de admisión?

¿Es mucho más fácil para los estudiantes estadounidenses obtener buenos resultados en exámenes estandarizados como el SAT?

¿Qué puntuación SAT y las cosas se requieren para ingresar a Stanford y MIT con calificaciones bajas en el año de baja?

¿Es 1870 una buena puntuación en los SAT?

¿Cuál es la mejor preparación para la prueba para la versión más reciente de ATC-SAT? La prueba se actualizó y quiero asegurarme de que estoy estudiando información relevante.

¿Es aceptable el puntaje SAT en cualquier universidad de Australia / Canadá?