Algoritmos para o exame no SHAD

Olá! Meu nome é Alexander Kurilkin e estou ministrando um curso sobre algoritmos no ShAD Helper. Neste post, analisarei várias tarefas dos exames de admissão dos últimos anos, para que você possa ver o que o espera e entender o que podemos ensinar em nosso curso. Espero que você compartilhe meu amor por tarefas interessantes sobre algoritmos e tenha prazer sincero ao ler este post! Então vamos começar ...



28/05/2016, nº 4


São dados nsegmentos [ai;bi]. Chamamos o índice de aninhamento de segmento[ai;bi]o número de segmentos que o contêm. Sugira um algoritmo que determine se existe um segmento no conjunto com um índice de aninhamento superior a 1000. O limite de tempo éO(nlogn), para memória adicional - O(n).


Decisão

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


Uma matriz de números reais é dada A. Sugira um algoritmo que encontre para cada elementoAíndice do elemento mais próximo à direita, pelo menos duas vezes seu tamanho. Se não houver esse elemento, o valor deverá ser retornado.None. PrazoO(nlogn), para memória adicional - O(n).


Decisão

(,). ( 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, No. 5
No conjunto den cada pessoa pode ou não conhecer a outra (se Asabe B, não segue isso Bsabe A) Todos os conhecidos são dados por uma matriz booleanan×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. .



qnúmeros separados por espaços ou quebras de linha - o peso da árvore de abrangência mínima após cada solicitação.


Decisão

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