Algorithmen für die Prüfung im SHAD

Hallo! Mein Name ist Alexander Kurilkin und ich unterrichte einen Kurs über Algorithmen bei ShAD Helper. In diesem Beitrag werde ich einige Aufgaben aus den Aufnahmeprüfungen der letzten Jahre analysieren, damit Sie sehen können, was Sie erwartet, und verstehen, was wir Ihnen in unserem Kurs beibringen können. Ich hoffe, dass Sie meine Liebe zu interessanten Aufgaben zu Algorithmen teilen und sich aufrichtig über das Lesen dieses Beitrags freuen werden! Also lasst uns anfangen ...



28.05.2016, Nr. 4


Sind gegeben nSegmente [ai;bi]. Wir nennen den Segmentverschachtelungsindex[ai;bi]die Anzahl der Segmente, die es enthalten. Schlagen Sie einen Algorithmus vor, der bestimmt, ob sich ein Segment in der Gruppe befindet, dessen Verschachtelungsindex 1000 überschreitet. Das Zeitlimit beträgtO(nlogn), für zusätzlichen Speicher - O(n).


Entscheidung

, "". , - , , - , . " ", 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, Nr. 4


Ein Array von reellen Zahlen wird angegeben A. Schlagen Sie einen Algorithmus vor, der für jedes Element findetAIndex des Elements am nächsten rechts, mindestens doppelt so groß. Wenn es kein solches Element gibt, sollte der Wert zurückgegeben werden.None. ZeitlimitO(nlogn), für zusätzlichen Speicher - O(n).


Entscheidung

(,). ( 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, Nr. 5
Im Set vonn Jede Person kann die andere kennen oder nicht (wenn Aweiß BDaraus folgt nicht Bweiß A) Alle Bekanntschaften werden durch eine Boolesche Matrix gegebenn×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. .



qZahlen, die durch Leerzeichen oder Zeilenumbrüche getrennt sind - das Gewicht des minimalen Spannbaums nach jeder Anforderung.


Entscheidung

, , 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