Afişează mesaje
|
Pagini: 1 2 3 [4] 5 6
|
77
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2013 / Răspuns: Queue
|
: Ianuarie 21, 2013, 18:42:13
|
Interesant ... Eu aveam 2 stive, una in care puneam si alta din care scoteam. Daca nu aveam ce scoate, scoteam tot din stiva de entry si puneam tot in cea de exit, si practic imi rasturnam stiva. Ai dreptate Rares, dar daca am deja cateva elemente in stiva de exit, cum pot rasturna stiva de entry?
|
|
|
80
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2013 / Răspuns: Algoritmiada 2013, Runda 2
|
: Ianuarie 20, 2013, 15:00:19
|
Am invatat tehnica asta la lotul de info. Daca stai si te concentrezi, canalizandu-ti forta, folosind tehnici de Jedi, daca cineva care stie rezultatele se gandeste la ele, si tie o sa iti vina ideea ( in cazul acesta gandul ) si asa poti obtine mai repede rezultatele.
|
|
|
81
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2013 / Răspuns: Mergesort
|
: Ianuarie 20, 2013, 13:07:04
|
Prin "sortat" se refera la faptul ca elementele dintre left si right sunt in ordine crescatoare? (1,3,5,7) Sau la faptul ca sunt exact cum vor arata in sirul final sortat (1,2,3,4) ?
In ordine crescatoare.
|
|
|
86
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2013 / Răspuns: Queue
|
: Ianuarie 20, 2013, 09:46:43
|
Pe fiecare linie a fisierului de output puteti afisa maximum 500 000 caractere, altfel outputul se va considera invalid. [...] trebuie sa inceapa cu indicele operatiei din input careia sirul de operatii de pe linia curenta ii corespunde Daca pentru a face operatia 'x' am nevoie de mai mult de 500 k de caractere de afisat, pot afisa pe 2 linii? x: .. x: ..
|
|
|
87
|
infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2012 / Răspuns: Placute
|
: Decembrie 28, 2012, 17:10:05
|
mie mi-a mers ^^ Si in principiu ideea e buna .. Ai prima culoare x. Gasesti ultima pozitie pentru care numarul de porci cu 'x' este egal numarul de porci de alte culori .. si nu ai ajuns sa ai mai multi porci de alte colori pe parcurs. Daca dupa ce ai facut asta ai ajuns sa ai mai multi porci de culoare x pana la final .. iei numaru_de_porci_de_alte culori pe toti .. si iei primi porci de culoare x + 1 ^^ for ( ; ok; ){ // mergem cu ind1 for ( ; ( Pig[ind1].color == last_color || Viz[ind1] == 1 ) && ind1<=n ; ind1++ ) ; if ( ind1 <= n ){ rez += Pig[ind1].cost; Viz [ind1]=1; last_color = Pig[ind1].color; swap ( ind1, ind2 ); } else { ok=0; } } Sper sa te ajute =))
|
|
|
88
|
infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2012 / Răspuns: Placute
|
: Decembrie 27, 2012, 15:28:57
|
Eu am sortat ( NlogN ) si apoi ... am scos O( N ). Ideea e sa te plimbi cu "2" pointeri in felul urmator. Daca ai sirul sortat dupa greutatea porcilor descrescator .. Si sa zicem ca primi 5 porci sunt de culoare 1 .. O sa fie ceva de genul. 10 1 9 1 8 1 7 1 6 1 Si tu parcurgi cu 1 pointer "varful" stivei .. si vezi ca ai porcul cu greutate 10. - "il scoti" Apoi mergi in continuare cu al 2-lea pointer si scoti un porc care nu are culoarea '1'. Apoi cu primul pointer, care arata cel mai mare porc, il scoti .. Apoi cu pointerul 2 iterezi in continuare. Acum. ( 1 ) De ce merge? Daca primi x porci sunt de culoarea 1 .. e clar ca o sa fie scosi in oridnea asta .. porcul 1 .. primul porc care are culoarea != cu 1 .. porcul 2 ... porcul x .. Acum, dupa ce am terminat un 'sir' ( adica o secventa in care aveam porc de culoare 1 .. altceva .. porc de culoare 1 .. altceva. ) ! aici trebuie adaugat faptul ca daca am culorile 1 1 1 2 1 1 1 .. tot un sir am, deoarece toti cei 6 * 1 vor fi scosi conform regulei. adica .. 1 .. altceva ..1 .. altceva .. 1 .. etc. ^^ Acum, dupa ce am terminat sirul, sa zicem ca culoarea mea e '2' ... si SUNT SIGUR ca e cel mai 'valoros' porc. Unde il gasesc pe urmatorul diferit de 2? hmm .. Surprinzator, problema are o legatura cu cea cu parantezarile corecte ^^ De ce? Deoarece se poate reformula aceasta 'subproblema' in felul urmator. sa zicem ca culoarea celui mai valoros porc este 1 ) Putem reprezenta sirul de culori ca fiind '1' daca culoarea este 1 .. si 0 altfel.. Sa avem exemplu. 1100111001000011111 Si putem spune ca o sa se termine "domnia" sirului ( cum am spus mai sus .. ) 1 altceva ..1 .. altceva .. 1 .. altceva .. pe pozitia x, astfel incat .. numarul de 1 si de 0 este egal pana la pozitia x, si pozitia x+1 este 0. Adica .. daca am avea -1 in loc de 0 .. Ar fi cea mai mare pozitie a.i. suma pana acolo este pozitiva. Sau cea mai lunga parantezare corecta care incepe de la "inceput" ( de unde incepe sirul ). xD Poate ca nu am fost foarte coerent, dar in principiu cam asta ar fi ideea. Daca suntem la pozitia x, si gasim acea pozitie cheie descrisa mai sus la pasul y .. atunci putem sa punem toti porcii intre x si y, si sa consideram y ca fiind inceputul algoritmului. Nu putem gasi pozitia 'y' atunci cand numarul de 1 este mai mare decat cel de 0 pe tot parculsul sirului .. Ex: 1101010111 Atunci numaram cati de '0' sunt .. si luam toti porcii marcati cu '0' si acel numar+1 de porci marcati cu '1' .. Aparent pare destul de greu de implementat .. poate daca se reformuleaza altfel, o sa fie mai ok .. Dar asa mi s-a parut cel mai usor de explicat. Craciun Fericit, si Sarbatori Fericite, Infoarena!
|
|
|
89
|
infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2012 / Răspuns: Sir5
|
: Decembrie 27, 2012, 15:14:52
|
Cred ca poti sa o iei asa .. Consideri Ca inlantuiesti bitii aia .. Daca ai 3 3 3 4 o sa iti faci 1110001110000 .. smenul e ca l < 30 .. Deci poti sa o iei ca fiind 111000[ inca multi de 0 ] 0000111100000[multi de 0]00111111[multi de 1]111100 etc. Sper ca te-ai prins de idee .. Daca ai un "sir" de 1 .. il iei ca 1111 ( 30 maxim .. ( L adica ) ) .. MULTI DE 1 .. 111 ( 30 maxim ). De ce faci asta? Pentru ca daca ai 001111 ( sa zicem la pasul x ) ca sa treci la pasul x+1 iti scoti tu acolo o dinamica. Si la dinamica aia iti trebuie doar 30 de pasi din recurenta. Sau L .. sau ceva de genu. Si cand ai 1111111 ( multi ) ultimi 30 sunt 1 .. si la pasul x+1 .. x+2 .. etc o sa fie aceeasi recurenta. Si poti scoate acolo dinamica cu inmultiri de matrici, cum a zis Adi.. Daca desfasori tot pe acolo o sa ai cam 100 de caractere + ceva inmultire de matrici care merge repede Sper ca ai inteles ^^ Succes in continuare > <
|
|
|
97
|
Comunitate - feedback, proiecte si distractie / Blog / Răspuns: Haideti sa imbunatatim Infoarena impreuna!
|
: Noiembrie 06, 2012, 22:26:36
|
Nu stiu daca e o idee buna sau rea .. Dar mie personal mi se pare mai ok daca ar aparea la mai multe probleme ( cel putin in arhiva ) statusiri mai diferite. - revin - Am observat ca la unele exista mesaje mai diverse .. cum ar fi marja de eroare .. la problemele in care cere un numar maxim de operatii ( invsort de exemplu ) afiseaza numarul de operatii. Daca am avea o probleme care ne spune sa se gaseasca indicii i,j a.i. s + .. + s[j] = maxim .. sa ne spune daca am spus ca suma chiar e maxima dar i si j nu sunt minimi .. sau dracii de astea in principiu pe unde se poate.
Stiu ca e destul de dubioasa ideea ( de la acm-uri cu ai trecut/nu ai trecut la 10 teste cu feedback separat si acum la feedback detaliat .. e doar o idee )
|
|
|
98
|
Comunitate - feedback, proiecte si distractie / Blog / Răspuns: Haideti sa imbunatatim Infoarena impreuna!
|
: Noiembrie 06, 2012, 20:47:05
|
1) Poate ca ar fi ok sa fie o echipa care sa dea "stele" la probleme .. dar nu cred ca sta cineva atata timp sa le marcheze. Acum .. ar putea fi mai multe tipuri de dificultati .. sti si eu? - dificultate de intelegere a enuntului - de idee - de inventivitate a solutiei ( ar fi util sa fie ceva "must know" mai bine conturat probabil .. ) - dificultate de codat. Si daca tot o iei asa ar putea da fiecare concurent un raging .. si sa aiba o pondere diferita in functie de ratingul sau .. de problemele rezolvate .. etc. Cum e pe IMDB de exemplu .. nota unui film nu e media aritmetica a notelor de la utilizator + ceva de la "specialisti" 2) Sunt putine probleme la care testele nu cuprind toate cazurile particulare, si la acele problemel de obicei se anunta, si poti participa si tu cu teste .
|
|
|
|