Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1549 Cartite : Aprilie 12, 2015, 10:55:29
In caz ca va intrebati de ce unele surse iau 90, 95 si nu suta:

"Cârtita doreste sa se plimbe prin toate galeriile de sub teren trecând o singura data prin fiecare, dar pentru acest lucru trebuie sa ajunga nevatamata mergând la suprafata terenului la un patratel de unde sa intre în sistemul de galerii."

Cateva surse (pana si oficiale) nu iau in considerare acest aspect si incep euler-ul din nodul 1. Pe testul 5 acest lucru este gresit, deoarece nodul 1 al galeriei este pazit de catre o vulpe.

Asadar am introdus in eval si cazul acesta particular pentru ca sa se respecte pe deplin cerinta (sa fie identic cu OJI unde s-au luat multe punctaje de 95)
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1548 Fractii2 : Februarie 16, 2015, 23:07:25
Se mai fac astea de la OJI disponibile?  Mad
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1549 Cartite : Februarie 16, 2015, 23:05:43
Cateva is deja gata. Ce se intampla cu restu?! Am inteles ca pana in iunie trebuiau puse pe site  Read This!
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1470 Karb2 : Septembrie 25, 2014, 16:10:43
Limita de timp a fost marita la 0.4. Imi cer scuze pentru neplacerile create. Confused
5  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Generare submultimi in alta ordine : August 06, 2014, 19:09:33
Citat
Prin backtracking inteleg acele metode in care incerci solutii si apoi le verifici.

Da, iei pe rand fiecare combinatie posibila de numere. Insa, pentru a afisa in ordine crescatoare dupa S si pentru a evita solutiile invalide apar niste complicatii.  Confused

O metoda ar fi sa faci pentru toate S-urile un back(int k, int sum, int sum_now) (k ii pozitia curenta pentru care generezi, sum ii suma la care vrei sa se ajunga, sum_now ii suma curenta a numerelor pana la pozitia k-1, inclusiv)
De asemenea, retinerii sumei partiale pentru fiecare element ajuta pentru calcularea mai rapida. (sp[ i ] = sp[ i-1 ] + a[ i ])

pentru fiecare pozitie k va fi un for in care se testeaza elementele:

Cod:
void back(int k, int sum, int sum_now) {
        for(int i = max (0, sum - sum_now - (sp[ m ] - sp[ k ]); i <= min(sum - sum_now, a[ k ]); ++i) {
               v[ k ] = i;
               back(k+1, sum, sum_now + i);
       }
}

max (0, sum - sum_now - (sp[ m ] - sp[ k ]) - verifica cazul in care toate elementele de la k+1 pana la m vor fi maxime, astfel incat sa se evite problema solutiilor invalide (in care suma obinuta in back e mai mica decat ar trebui sa fie)

Nu ar trebui sa se obtina nici duplicate, nici solutii invalide cand ajungi la k maxim.  Cool
Citat
Nu. Problema nu e din ceva concurs, e din viata reala, deci putem fi flexibili.

Orice alta precizare poate modifica radical algoritmul, inclusiv ordinea aceea cand S-urile sunt egale. Smile
6  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Generare submultimi in alta ordine : August 05, 2014, 21:24:55
Daca nu ma insel, tot timpul vor exista (a[1] + 1) * (a[2] + 1) * (a[3] + 1) *... * (a[m] + 1) solutii. (Incerci sa obtii toate combinatiile posibile). Nu exista algoritmi care au complexitatea mai buna decat Backtracking.

LE: Se pot aplica optimizari, precum cele care le-ai precizat mai sus, dar in fond tot backtracking este  Smile

Mai sunt si alte restrictii si precizari?
7  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Generare submultimi in alta ordine : August 05, 2014, 18:04:53
Care este ordinea de generare cand suma este aceeasi? (b-urile alea sunt sortate sau nu?)

8  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1480 Traseu3 : Iulie 21, 2014, 16:00:47
Am trimis o sursă care află corect doar T, și am primit 0 puncte...
Presupun că nu se respectă condiția: Se acordă: 40% din punctaj pentru determinarea corectă a numărului T

Da, aici ai dreptate, am uitat sa pun evaluator la problema. Multumesc pentru ca ai postat.  Smile

LE: Un evaluator a fost adaugat iar sursele au fost reevaluate. Imi cer scuze pentru neplacerile create.
9  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 284 Joc3 : Iulie 11, 2014, 13:49:28
Aici testele nu sunt publice. Problema aceasta a fost data la un concurs ce a avut loc pe site, poate asta http://www.infoarena.ro/happy-coding-2006/solutii te ajuta.
10  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 116 Suma : Iulie 09, 2014, 12:22:40
1 ≤ N ≤ 10^9

Tu inmultesti tot odata si e normal sa iti faca overflow. Fa cate o inmultire si apoi modulo.
11  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 129 Cercuri : Mai 27, 2014, 20:46:41
Cod:
 -2
388.631
-2
-2
1351.801
-2
1111.424
-2
176.357
586.031
-2
-2
-2
-2
-2
-2
1414.214
12  infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 4 : Aprilie 24, 2014, 20:44:56
pentru m = 3, trebuie calculat (2 ^ k) % (m - 1), adica (2 ^ k) % 2 = 0. rezulta ca oricat ar fi a, am calcula (a ^ 0 + 1) % m = 2. Asta nu e valabil pentru testul 4 1 3
13  infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 4 : Aprilie 24, 2014, 20:36:17
Foarte grele problemele. 27/85 au scos mai mult de zero.

Cat legat de problema Bacterii, pentru orice numar prim P = 2 ^ x + 1 nu functioneaza teorema lui Fermat. (m = 3 cazul cel mai evident)
14  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 057 Elementul majoritar : Aprilie 05, 2014, 14:02:43
Testele la problema asta sunt busite sau restrictia asta nu e in regula:
Cod:
1 ≤ v[i] ≤ 2 * 10^9

http://www.infoarena.ro/job_detail/951076?action=view-source sursa asta ia suta. Am declarat un vector de frecventa pentru numere mai mai mici decat 10^6 si nu am luat Killed by signal.
15  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: Olimpiada Pluridisciplinara "Tuymaada" - Yakutia 2013 : Iulie 22, 2013, 17:33:21
Bravo! Applause
16  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 954 Tester : Iulie 22, 2013, 09:23:45
Pentru exemplul al doilea 1 2 3 2 3 1 4 3 4 nu este un raspuns valid? Fiecare combo posibil are o singura aparitie, iar numarul de resetari este minim.

LE: Nu apare fiecare combo posibil(lipseste 1 4 3 2 spre exemplu), doar secventa de taste apare fara sa fie necesara resetarea.
17  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: IOI 2013 : Iulie 10, 2013, 13:01:02
Stiti ceva de clasament?

Felicitari si la mai multe in continuare  Dancing
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines