ditzone
Vizitator
|
 |
« : Octombrie 15, 2006, 21:40:46 » |
|
Aici puteţi discuta despre problema Expresii min-max.
|
|
|
Memorat
|
|
|
|
•cristy
|
 |
« 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
Mesaje: 87
|
 |
« 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: 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
Mesaje: 32
|
 |
« 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
|
 |
« 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  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
Mesaje: 32
|
 |
« 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
|
 |
« Răspunde #6 : Mai 08, 2007, 22:01:21 » |
|
Atunci incearca un test de genu
|
|
|
Memorat
|
vid...
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
 |
« 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
Mesaje: 32
|
 |
« Răspunde #8 : Mai 13, 2007, 09:09:53 » |
|
Ma ajuta si pe mine cineva?
|
|
|
Memorat
|
|
|
|
|
•gabitzish1
|
 |
« 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 ")" ? 
|
|
|
Memorat
|
|
|
|
•DITzoneC
|
 |
« Răspunde #11 : Mai 13, 2007, 10:31:34 » |
|
Ba da, am corectat.
|
|
|
Memorat
|
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
 |
« 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
|
 |
« 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
Mesaje: 32
|
 |
« 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
|
 |
« 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
|
 |
« 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
Mesaje: 32
|
 |
« 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
|
 |
« 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.  Sper ca ai inteles, asa tre sa mearga.
|
|
|
Memorat
|
....staind....
|
|
|
•Dastas
|
 |
« Răspunde #19 : Mai 18, 2007, 20:31:42 » |
|
Desi cel mai elegant e cu notatie poloneza  Si trebuie sa intre in timp.
|
|
|
Memorat
|
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
 |
« 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
|
 |
« 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
Mesaje: 3
|
 |
« 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. 
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« 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". 
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« 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...  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
|
|
|
|
|