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ónnorte), 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ónnorte), O(norteIniciar sesión1000)=O(norte)O(n) . , : O(norteIniciar sesiónnorte). 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ónnorte), 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ónnorte), . , , , 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 (yoj), 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— (1norte,metro105 5,2norte). metrotu, v, w. , w, tuv(1tu,vnorte,1w10).


q— (1q105 5). qyore(1yoremetro). , 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ónnorte)link-cut tree, , ( ). .


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


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


, , ? O(α(norte)), O(10metroIniciar sesiónnorte)=O(metroIniciar sesiónnorte). , Accepted :)


All Articles