Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 293 Expresii min-max  (Citit de 10053 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« : Octombrie 15, 2006, 21:40:46 »

Aici puteţi discuta despre problema Expresii min-max.
Memorat
cristy
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 136



Vezi Profilul
« Răspunde #1 : Noiembrie 15, 2006, 21:32:36 »

va rog...dati un exemplu mai complicat...sa vad ce nu imi iese...iau 40 de pct....restu WA
Memorat

... lipsa de inspiratie ...
Binary_Fire
Client obisnuit
**

Karma: 82
Deconectat Deconectat

Mesaje: 87



Vezi Profilul
« Răspunde #2 : Noiembrie 15, 2006, 23:08:22 »

Fii atent la codurile pe care le-ai atribuit operatorilor 'm' , 'M' si parantezelor, s-ar putea sa fie aceleasi cu unele numere din fisier.   
Uite si un mic test:
Cod:
Input:
((345m(3)m(56m(3M(8m4)))))M(343m93M(((5m4))))

Output:
93
Nu prea sunt teste complicate , trebuie doar sa fi atent la implementare. Sper sa ajute.
Memorat
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #3 : Mai 07, 2007, 22:14:36 »

Buna am facut si eu problema asta si am o mica problema. Iau TLE la 7 teste ma poate ajuta cineva? id-ul meu de mess este bogdanpopescu88
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #4 : Mai 08, 2007, 14:32:28 »

7 TLE? Faci recursivitate? Adica cum dai de o "(" mai apelezi odata functia care rezolva o expresie gen "5m3M1"? Chiar nu vad cum ai putea sa iei TLE, mi se pare destul de liniara treaba Tongue

Later edit: Vezi sa nu-ti ruleze la infinit pe anumite cazuri, mai fa niste teste.
« Ultima modificare: Mai 08, 2007, 14:34:56 de către Andrei Homorodean » Memorat

....staind....
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #5 : Mai 08, 2007, 20:26:21 »

Da asa am facut.....cand am gasit o paranteza am apelat inca o data functia
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #6 : Mai 08, 2007, 22:01:21 »

Atunci incearca un test de genu
Cod:
(((((((((7M8)))))))))
Memorat

vid...
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #7 : Mai 11, 2007, 21:36:45 »

Am folosit recurenta! Am testat si cu teste de genu cum ai spus Cosmin, imi da bine, dar depaseste timpu.....ce pot face pt a optimiza? id-ul meu de mess este bogdanpopescu88
Memorat
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #8 : Mai 13, 2007, 09:09:53 »

Ma ajuta si pe mine cineva?
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #9 : Mai 13, 2007, 09:49:25 »

Poate te ajuta http://en.wikipedia.org/wiki/Shunting_yard_algorithm. Poti transforma sirul in notatie poloneza, care se evalueaza foarte usor si intra in timp.
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #10 : Mai 13, 2007, 09:58:41 »

Unul dintre exemplele din enunt este
12m23M13m192)M(90m89m88m87)m((298M7)M2)     si raspunsul e 87....

nu ar trebui sa fie parantezat corect,  avand in vedere ca prima paranteza intalnita este ")" ? Eh?
Memorat
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #11 : Mai 13, 2007, 10:31:34 »

Ba da, am corectat.
Memorat
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #12 : Mai 18, 2007, 16:56:41 »

M-am saturat am facut problema in toate felurile si iau TLE (numa 65 de puncte). Imi poate da si mie cineva vreo idee cum o pot face fara sa mai iau TLE? (cineva care a facut-o va rog)
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #13 : Mai 18, 2007, 17:09:24 »

Ti-am dat un link unde practic ai algoritmul de rezolvare... ai incercat sa-l implementezi?
Memorat
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #14 : Mai 18, 2007, 17:56:58 »

De transformat in expresie poloneza e usor...dar imi spui dup-aia cum fac? ca imi va depasi timpul daca fac cu un vector
« Ultima modificare: Mai 18, 2007, 18:24:40 de către Bogdan Popescu » Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #15 : Mai 18, 2007, 19:25:47 »

Pai descrie exact cum faci. Transformarea o faci nerecursiv, iar evaluarea la fel. Pentru evaluare iti mai iei o stiva, parcurgi vectorul in care ti-ai format sirul in notatie poloneza, iar in momentul in care pui un operator in acea stiva, vei avea operanzii deja adaugati, deci ii scoti din stiva, calculezi, adaugi rezultatul inapoi in stiva, iar la sfarsit stiva va contine o singura valoare: rezultatul care te intereseaza.

Ideea asta e, cu asta am luat 100... poate te complici pe undeva, da si tu mai multe detalii si incerc sa te ajut.
« Ultima modificare: Mai 18, 2007, 19:28:29 de către Ionescu Vlad » Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #16 : Mai 18, 2007, 20:04:07 »

Sau in aproape orice culegere gasesti evaluarea unei expresii(folosind recursivitate)... e cam aceeasi chestie, daca urmezi modelu' iti iasa sigur!
Memorat

....staind....
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #17 : Mai 18, 2007, 20:14:02 »

Deci eu am incercat asa: am facut o procedura care sa calculeze rezultatul de la pozitia i pana la j. cand am dat de o paranteza deschisa am apelat procedura, dupa care stergeam tot ce era in paranteza din sir si adaugam numai rezultatul.......programul mergea foarte bine numai ca imi da TLE la 7/20 de teste
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #18 : Mai 18, 2007, 20:22:49 »

Eu am o variabila i globala  care imi zice pana la ce pozitie am evaluat, si o functie recursiva care returneaza rezultatul pana in acel moment daca  intalneste ')' sau daca i = n. Ea rezolva o operatie gen 1m2, sau 4M5, si daca da peste o situatie gen 1m(...... face rez = min(rez, solve()), inainte sa apelez solve() trec cursorul i dupa '(' .. Deci am O(n), atat doar ca se cam incarca stiva. Smile Sper ca ai inteles, asa tre sa mearga. 
Memorat

....staind....
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #19 : Mai 18, 2007, 20:31:42 »

Desi cel mai elegant e cu notatie poloneza Tongue Si trebuie sa intre in timp.
Memorat
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #20 : Mai 18, 2007, 22:05:24 »

Am implementat in expresie poloneza asa cum mi-ai spus...si de ex pt testul 178m66m234M89m54M13M22m67 in expr poloneza da 178 66 234 89 54 13 22 67 m M M m M m m nu? e bine pana acum.......si acum daca evaluez expresie si iau pentru fiecare m sau M intalnit numerele cele 2 din fata imi da alte rezultate decat cele de la teste!!! Ce nu e bine? Unde gresesc?
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #21 : Mai 18, 2007, 22:14:34 »

Nu e buna forma poloneza, citeste mai cu atentie algoritmul. Trebuie sa-ti dea 178 66 -1 234 -1 89 -2 54 -1 13 -2 22 -2 67 -1, unde -1 = m, -2 = M. Operatorii au aceeasi prioritate.
Memorat
GrammerProf
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #22 : Mai 19, 2007, 20:52:39 »

Chiar daca nu are legatura cu subiectul in discutie, vreau si eu sa stiu cum pot accesa solutii ale problemelor din arhiva.  M-am lovit de urmatorul mesaj in incercarea mea de a ma uita la evaluator (nu stiu daca e unul si acelasi lucru cu rezolvarea unei p robleme):

"Nu ai permisiuni suficiente pentru a executa aceasta actiune! Te redirectez ..."

Si normal ca asa-zisa
"redirectare" nu a mai avut loc.

Multumesc anticipat,
Bogdan. Angry
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #23 : Mai 19, 2007, 20:57:44 »

Calmeaza-te! Probabil problema urmeaza sa fie pusa in arhiva. De fapt, problemele. Akum cred k se fak ultimile "retusuri".  Whistle
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #24 : Mai 19, 2007, 21:31:38 »

Chiar daca nu are legatura cu subiectul in discutie, vreau si eu sa stiu cum pot accesa solutii ale problemelor din arhiva.  M-am lovit de urmatorul mesaj in incercarea mea de a ma uita la evaluator (nu stiu daca e unul si acelasi lucru cu rezolvarea unei p robleme):

Daca zici ca vrei sa accesezi solutii ale altor concurenti, nu ai voie din cate stiu eu...  Shame on you Daca e vorba de solutia ta, atunci e o problema... asta o primesc si eu uneori, e posibil sa fi modificat oarecum regulile legate de securitate de pe site ... Si redirectarea trebuie sa vina, nu te duce pe pagina principala?
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines