Algorithmes pour l'examen dans le SHAD

salut! Je m'appelle Alexander Kurilkin et j'enseigne un cours d'algorithmes à ShAD Helper. Dans cet article, j'analyserai plusieurs tâches des examens d'entrée des dernières années, afin que vous puissiez voir ce qui vous attend et comprendre ce que nous pouvons vous enseigner dans notre cours. J'espère que vous partagerez mon amour pour les tâches intéressantes sur les algorithmes et que je recevrai un plaisir sincère à lire cet article! Alors, commençons ...



28/05/2016, n ° 4


Sont donnés nsegments [ai;bi]. Nous appelons l'indice d'imbrication des segments[ai;bi]le nombre de segments qui le contiennent. Suggérer un algorithme qui détermine s'il existe un segment dans l'ensemble avec un indice d'imbrication supérieur à 1000. La limite de temps estO(nlogn), pour plus de mémoire - O(n).


Décision

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


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


, . O(nlogn), O(nlog1000)=O(n)O(n) . , : O(nlogn). O(n).


25/05/2019, n ° 4


Un tableau de nombres réels est donné A. Suggérer un algorithme qui trouve pour chaque élémentAindice de l'élément le plus proche à droite, au moins deux fois sa taille. S'il n'y a pas un tel élément, alors la valeur doit être retournée.None. Limite de tempsO(nlogn), pour plus de mémoire - O(n).


Décision

(,). ( None), (A[n1],n1), . i. , , , ? , . , , , ? . , . , (A[i],i). , , ? , ( ) i. (, , std::vector) , A[i]2. , ( ), , None.


, , ? , O(n), n, O(nlogn), . , , , O(n).


06/10/12, n ° 5
Dans l'ensemble desn chaque personne peut ou non connaître l'autre (si Asait B, il ne s'ensuit pas que Bsait A) Toutes les connaissances sont données par une matrice booléennen×n. — , , . , , . — O(n), — O(1).


Kij=1, i- j- , 0 .


, Kij=1 (ij), i- , - , j- , Kij=0, j- , i- .


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


, , !


2019, -, D


, 2
: 2
: 256Mb


nm. q« i1». .


— , . , .


. , , .



nm— (1n,m105,2n). mu, v, w. , w, uv(1u,vn,1w10).


q— (1q105). qid(1idm). , id. .



qnombres séparés par des espaces ou des sauts de ligne - le poids de l'arbre couvrant minimum après chaque demande.


Décision

, , 99% . .


" uv", k. uvk( . k+1, , uv>k+1, k+1, , ́ ), , 1. . , , . O(n), , , O(logn)link-cut tree, , ( ). .


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


(u,v)1 k. k- . , k- uv. , k+1, , . , uvk- , 1. uvk- , k, .


, , ? O(α(n)), O(10mlogn)=O(mlogn). , Accepted :)


All Articles