Buscando preguntas del examen para las semifinales de la XII Liga Olímpica Nacional Juvenil de Informática (Grupo Popular Lengua PASCAL).

12ª Olimpiada Nacional de Informática Juvenil

Preguntas de la Semifinal de la Liga

(Grupo de Popularización NOIP2006)

Tiempo de competencia: 16 de junio de 5438 + 65438 de octubre + 8 meses 65438 + 0:30-4:30 p.m.

Título de la prueba

Aleatorio

Feliz

Contando

Orden

Directorio

Aleatorio

Feliz

Conteo

Secuencia

Ingrese el nombre del archivo

Entrada aleatoria

Feliz en

Contado en

Entrada de secuencia

Nombre de archivo de exportación

Salida aleatoria

Feliz, sal

Inventario completado

Resultado de la secuencia

Tipo de pregunta de prueba

Problemas del programa no interactivo

Problemas del programa no interactivo

Problemas del programa no interactivo

Problemas del programa no interactivo

Archivos adjuntos

No

No

No

No

Límite de tiempo

1 segundo

1 segundo

1 segundo

1 segundo

Explicación de las restricciones sobre el uso de diferentes idiomas en la competición

1. instrucciones de uso y resultados de compilación

1. Para programas en lenguaje Pascal, cuando los resultados de compilación de IDE y fpc son inconsistentes, prevalecerán los resultados de compilación de fpc.

2. Permitir el uso de bibliotecas matemáticas (usando cláusulas matemáticas) y ansistring. Sin embargo, no se permite el uso de modificadores de compilación (el interruptor de verificación de rango de Pascal está desactivado de forma predeterminada durante la prueba final: {$R-, Q-, S-}) y las opciones relacionadas con la optimización no son compatibles.

Dos. Explicación de las restricciones de uso de plantillas en lenguaje C++

1. Partes permitidas:

colecciones booleanas, iteradores, cadenas y flujos en contenedores estándar.

Archivos de encabezado relacionados:

2. Partes prohibidas:

Secuencia: vector, lista, cola

Adaptador serie: pila, cola , cola de prioridad.

Contenedores asociativos: mapeo, multimapa, colección, multicolección.

Cuasi contenedor: valarray

Contenedor hash: hash_map, hash_set, hash_multimap, hash_multiset.

Todos los algoritmos de biblioteca estándar

Archivos de encabezado relacionados:

1. Obviamente números aleatorios

(random.pas/c/cpp)

Descripción del problema

Obviamente, quiero invitar a algunos estudiantes a realizar una encuesta en la escuela. Para garantizar la objetividad del experimento, primero utilizó una computadora para generar n números enteros aleatorios entre 1 y 1000 (n ≤ 1000). Para números duplicados, solo se conserva uno y se eliminan los demás números idénticos. Números diferentes corresponden a números de estudiantes diferentes. Luego ordena estos números de pequeño a grande y ve con tus compañeros de clase a investigar según el orden de clasificación. Ayude a Mingming a completar el trabajo de "eliminar duplicados" y "organizar".

Archivo de entrada

El archivo de entrada random.in tiene 2 líneas, una línea contiene 1 entero positivo, que indica el número de números aleatorios que se generarán:

Normal

La segunda línea contiene n enteros positivos, separados por espacios, que son números aleatorios generados.

Archivo de salida

El archivo de salida random.out también tiene 2 líneas. Una línea contiene un entero positivo m, que representa el número de números aleatorios diferentes. La segunda línea contiene m enteros positivos, separados por espacios, que son diferentes números aleatorios ordenados de pequeño a grande.

Muestra de entrada

10

20 40 32 67 40 20 89 300 400 15

Muestra de salida

Ocho

15 20 32 40 67 89 300 400

2. Feliz Jin Ming

(happy.pas/c/cpp)

Descripción del problema

Jin Ming está muy feliz hoy. Su familia está a punto de recibir las llaves de la nueva casa que compraron. Tenía una espaciosa habitación propia en la nueva casa. Lo que lo hizo feliz fue que su madre le dijo ayer: "Puedes comprar cualquier artículo que quieras y decorar la habitación de cualquier manera, siempre y cuando no exceda los N yuanes". Jin Ming comenzó a hacer un presupuesto esta mañana, pero. Había demasiadas cosas que quería comprar. Definitivamente excederá los N yuanes que ordenó mi madre. Así, asignó una importancia a cada ítem, dividida en cinco niveles: representados por números enteros del 1 al 5, siendo el quinto nivel el más importante. También comprobó el precio de todo lo que había en Internet (todo en yuanes). Espera maximizar la suma de los productos del precio y la importancia de cada artículo sin exceder N yuanes (puede ser igual a N yuanes).

Supongamos que el precio del j-ésimo artículo es v[j], la importancia es w[j], * *Seleccione k artículos, los números de serie son j1, j2,... Por el contrario , jk requiere La suma es:

v[j 1]* w[j 1]+v[J2]* w[J2]+…+v[JK]* w[JK].(donde * es el símbolo de multiplicación)

Ayude a Jin Ming a diseñar una lista de compras que cumpla con los requisitos.

Archivo de entrada

La primera línea del archivo de entrada happy.in son dos números enteros positivos separados por espacios:

n·m

(donde n(

Desde la línea 2 hasta la línea m+1, la línea J proporciona los datos básicos del artículo numerado j-1, y cada línea tiene 2 números enteros no negativos.

Vicepresidente

(donde v representa el precio del artículo (v

Archivo de salida

El archivo de salida happy.out tiene solo un entero positivo, Es el valor máximo del producto de importancia precio y mercancía que no excede la cantidad monetaria total (

Muestra de entrada

1000 5

800 2

400 5

300 5

400 3

200 2

Muestra de salida

3900

p>

3.3 Dilema del método de conteo

(count.pas/c/cpp)

Descripción del problema

La mermelada es una Frankenstein a quien le gusta ser poco convencional. No contaba con números arábigos, sino con letras inglesas minúsculas, que creía que harían el mundo más colorido. En su método de conteo, cada número tenía el mismo número de dígitos. de letras). de izquierda a derecha. Jam también especificará el rango de letras, por ejemplo de 2 a 10, lo que significa que solo se pueden usar las letras {b, c, d, e, f, g, h, I, j}. Si el número de dígitos se especifica como 5, entonces el número inmediatamente después del número de mermelada "bdfij" debe ser "bdghi" (si usamos U y V para representar el número de mermelada "bdfij" y "bdghi" en secuencia, entonces U , no hay ningún número de Jam P, por lo que U) Su tarea es: para un número de Jam leído del archivo, genere los siguientes cinco números de Jam en secuencia. Si no hay tantos números de Jam, genere algunos

Archivo de entrada<. /p>

El archivo de entrada counting.in tiene 2 líneas, 1 línea contiene 3 enteros positivos separados por espacios:

s t w

(donde s es la letra más pequeña utilizada, el número de serie, t es el número de serie de la letra más grande utilizada, w es el número de dígitos, estos tres números satisfacen: 1≤s≤26, 2≤w≤t-s)

La segunda línea es la letra w minúscula. La cadena es el número de Jam que cumple con los requisitos.

Todos los datos proporcionados son correctos y no requieren verificación.

Archivo de salida

El archivo de salida counting.out tiene como máximo 5 líneas, que son los 5 números de bloqueo inmediatamente después del número de bloqueo de entrada. Si no hay tantos números de atascos, envíe algunos. Solo se genera un número de Jam en cada línea, que es una cadena compuesta por w letras minúsculas sin espacios adicionales.

Muestra de entrada

2 10 5

bdfij

Muestra de salida

bdghi

bdghj

bdgij

bdhij

befgh

4. Secuencia

(sequence.pas/c/ cpp)

Descripción del problema

Dado un entero positivo k (3≤k≤15), la suma de todas las potencias de k y todas las potencias finitas de k no son iguales entre sí Una secuencia creciente. Por ejemplo, cuando k=3, la secuencia es:

1,3,4,9,10,12,13,…

(El orden en realidad es: 30, 365 , 438+0, 3365, 438+0, 32, 332, 365, 438+32, 3365, 438+32,...)

Solicitar esto secuencia El valor del enésimo elemento (expresado como un número de 10 decimales).

Por ejemplo, para k=3, N=100, la respuesta correcta debería ser 981.

Archivo de entrada

El archivo de entrada secuencia.in tiene solo una línea, que son dos números enteros positivos separados por espacios:

k N

(Los significados de k y N son consistentes con la descripción del problema anterior, 3≤k≤15, 10≤N≤1000).

Archivo de salida

El archivo de salida secuencia.out es el resultado del cálculo, que es un número entero positivo (en todos los datos de prueba, el resultado no supera 2,1*109). No debe haber espacios ni otros símbolos antes del número entero.

Muestra de entrada

3 100

Muestra de salida

981