Algoritmos para el examen en el SHAD

¡Hola! Mi nombre es Alexander Kurilkin, y estoy impartiendo un curso sobre algoritmos en ShAD Helper. En esta publicación analizaré varias tareas de los exámenes de ingreso de años anteriores, para que pueda ver lo que le espera y comprender lo que podemos enseñarle en nuestro curso. ¡Espero que compartas mi amor por las tareas interesantes sobre algoritmos y que recibas un sincero placer al leer esta publicación! Entonces empecemos ...



28/05/2016, N ° 4


Son dados nortesegmentos [unayo;siyo]. Llamamos al índice de anidación de segmento[unayo;siyo]El número de segmentos que lo contienen. Sugiera un algoritmo que determine si hay un segmento en el conjunto con un índice de anidación superior a 1000. El límite de tiempo esO(norteIniciar sesión⁡norte), para memoria adicional - O(norte).


Decisión

, "". , - , , - , . " ", unayo, " ", siyo. . , 1. , 1000, , — 1000 . — - , , . , (std::multiset C++), . , — 1000 . , , , , *set.begin(), ( 1000 ) . , ! , , . , . , , !


: 1000 ? , - 1000 , 1000 , - , ? , - 1000 , , , , , .


, . O(norteIniciar sesión⁡norte), O(norteIniciar sesión⁡1000)=O(norte)O(n) . , : O(norteIniciar sesión⁡norte). O(norte).


25/05/2019, No.4


Se da una serie de números reales UNA. Sugerir un algoritmo que encuentre para cada elementoUNAíndice del elemento más cercano a la derecha, al menos el doble de su tamaño. Si no existe tal elemento, entonces se debe devolver el valor.norteonortemi. Límite de tiempoO(norteIniciar sesión⁡norte), para memoria adicional - O(norte).


Decisión

(snorteyhminorteymi,ynorteremiacon). ( norteonortemi), (UNA[norte-1],norte-1)vamos a la izquierda Supongamos que queremos procesar el siguiente número con un índiceyo. , , , ? , . , , , ? . , . , (UNA[yo],yo). , , ? , ( ) yo. (, , std::vector) , UNA[yo]⋅2. , ( ), , norteonortemi.


, , ? , O(n), norte, O(norteIniciar sesión⁡norte), . , , , O(norte).


06/10/12, No. 5
en el conjunto denorte cada persona puede o no conocer a la otra (si UNAsabe si, no se sigue que sisabe UNA) Todos los conocidos están dados por una matriz booleananorte×norte. — , , . , , . — O(norte), — O(1).


Kyoj=1, yo- j- , 0 .


, Kyoj=1 (yo≠j), yo- , - , j- , Kyoj=0 0, j- , yo- .


: — . , 1, , l. , ( 0), , , , , - ( , , l). l- — , (l,l+1). 1, , , . , . , , , ( ), , , , . , , , O(norte), , O(norte). : O(norte). , , (, ), O(1). !


, , !


2019, -, D


, 2
: 2
: 256Mb


nortemetro. q« yo1». .


— , . , .


. , , .



nortemetro— (1≤norte,metro≤105 5,2≤norte). metrotu, v, w. , w, tuv(1≤tu,v≤norte,1≤w≤10).


q— (1≤q≤105 5). qyore(1≤yore≤metro). , yore. .



qnúmeros separados por espacios o saltos de línea: el peso del árbol de expansión mínimo después de cada solicitud.


Decisión

, , 99% . .


" tuv", k. tuvk( . k+1, , tuv>k+1, k+1, , ́ ), , 1. . , , . O(norte), , , O(Iniciar sesión⁡norte)link-cut tree, , ( ). .


1 10, 10 ( , ). k- ≤k. . : , ( ) , , . , , , , .


(tu,v)1 k. k- . , k- tuv. , k+1, , . , tuvk- , 1. tuvk- , ≤k, .


, , ? O(α(norte)), O(10⋅metroIniciar sesión⁡norte)=O(metroIniciar sesión⁡norte). , Accepted :)


All Articles