Afişează mesaje
|
Pagini: [1]
|
6
|
infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 3
|
: Martie 30, 2014, 14:37:23
|
Daca aveam k1>1 si k2>1 atunci o secventa descrescatoare/crescatoare poate sa fie reprezentata de primul si ultimul element si alte elemente din mijlocul secventei. Atunci parcurgem sirul si pur si simplu, verificam fiecare secventa crescatoare si adunam min(k1,lungimea_secventei_crescatoare), la fel si la secventele descrescatoare. Evident trebuie sa avem grija sa nu adunam un element de 2 ori. Cum am zis mai sus, daca k1=1 sau k2=1 trebuie sa calculam cel mai lung subsir crescator/descrescator. Daca nu intelegi mai explic.
|
|
|
8
|
infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 3
|
: Martie 28, 2014, 23:38:00
|
la concert2 eu am gasit o solutie de O(n) dar nu stiu de ce nu mi-a dat pe testul 4. daca vreti va descriu ideea.
Solutia ta este un greedy incorect. Pentru K1 = N si K2 = 1, problema se reduce la a determina subsirul crescator de lungime maxima si nu poate fi rezolvata intr-o complexitate mai mica de O(N * logN). Pe testul 10 10 1 1 2 3 4 10 9 8 3 4 5
raspunsul oferit de solutia ta este 7, iar raspunsul corect este 5. Edit: problema determinarii subsirului crescator de lungime maxima este celebra in literatura de specialitate si puteti citi mai multe aici si aici. Multumesc pentru ca m-ai lamurit. Astept solutiile oficiale. Nu m-am gandit la acest caz.
|
|
|
|