Titlul: 128 Curse de cai Scris de: ditzone din Octombrie 23, 2005, 21:52:25 Aici puteţi discuta despre problema Curse de cai (http://infoarena.ro/problema/cai).
Titlul: 128 Curse de cai Scris de: Vlad Berteanu din Octombrie 24, 2005, 13:47:15 Greedy-ul pt problema asta va ramane un mister pt multa lume sau cineva se va indura sa dea un hint ? .... ](*,)
Titlul: 128 Curse de cai Scris de: Mircea Pasoi din Octombrie 24, 2005, 13:58:17 Din cate am vazut la concurs, n-a fost un mare mister greedy-ul corect... apropo, problema poate fi rezolvata si cu dinamica.
Titlul: 128 Curse de cai Scris de: Andrei Grigorean din Octombrie 24, 2005, 16:37:52 incearca sa maximizezi numarul curselor castigate de gigel, incercand sa pui fiecare cal de-al sau sa concureze cu un adversar pe care poate sa-l invinga, cat mai puternic.
Titlul: 128 Curse de cai Scris de: Tiberiu-Lucian Florea din Octombrie 24, 2005, 16:50:13 Cred ca ar fi bine sa nu mai spuneti cum se rezolva problemele... altii vor invata destul de greu daca nu mai trebuie sa gandeasca, gasind pe forum solutiile care au fost acceptate. :roll:
Titlul: 128 Curse de cai Scris de: cristi8 din Octombrie 24, 2005, 19:45:41 nu, deci pe bune. ce faceai in caz ca un cal al lui gigel avea aceasi viteza cu un cal de-al adversarului (si nu putea bate nici un alt cal) ? il bagai la egalitate sau il puneai sa piarda ? cum decideai ?
Titlul: 128 Curse de cai Scris de: Iorgulescu Calin din Octombrie 24, 2005, 19:53:15 Ahem... poate ca pare ciudat... dar... n-ar fi fost mai buna egalitatea? 8-[
Adica ... daca nu putea bate un alt cal... e clar ca profitul adus era <=0 ... deci ... cea mai mare valoare... nu ar fi 0? Adica remiza? Eu faceam in felul urmator: 1. Sortam caii si ai lui gigel si ai lui ionel crescator. 2. Pornind de la 1 parcurgeam caii astfel: 2.a. Daca cal Gigel > cal Ionel => Gigel+200 lei. Se trece la urmatorii 2 cai. 2.b. Daca cal Gigel = cal Ionel se trece la urmatorii 2 cai. 2.c. Daca cal Gigel < cal Ionel => Gigel-200 lei. Se compara calul acesta al lui Gigel cu urmatorul cal al lui Ionel. In mod normal ar trebui sa asigure ca caii care vor castiga sunt maximi. :-k Titlul: 128 Curse de cai Scris de: Mircea Pasoi din Octombrie 24, 2005, 20:04:54 Citat din mesajul lui: calinux Ahem... poate ca pare ciudat... dar... n-ar fi fost mai buna egalitatea? 8-[ Adica ... daca nu putea bate un alt cal... e clar ca profitul adus era <=0 ... deci ... cea mai mare valoare... nu ar fi 0? Adica remiza? Eu faceam in felul urmator: 1. Sortam caii si ai lui gigel si ai lui ionel crescator. 2. Pornind de la 1 parcurgeam caii astfel: 2.a. Daca cal Gigel > cal Ionel => Gigel+200 lei. Se trece la urmatorii 2 cai. 2.b. Daca cal Gigel = cal Ionel se trece la urmatorii 2 cai. 2.c. Daca cal Gigel < cal Ionel => Gigel-200 lei. Se compara calul acesta al lui Gigel cu urmatorul cal al lui Ionel. In mod normal ar trebui sa asigure ca caii care vor castiga sunt maximi. :-k Ce faci pentru? Cod: 1 2 3 4 5 Se poate obtine castig 600 astfel: 2-1, 3-2, 4-3, 5-4, 1-5. Titlul: 128 Curse de cai Scris de: Bogdan-Cristian Tataroiu din Octombrie 24, 2005, 20:16:32 Nu e atat de simplu... In primu rand sortezi descrescator.
Citat Adica ... daca nu putea bate un alt cal... e clar ca profitul adus era <=0 ... deci ... cea mai mare valoare... nu ar fi 0? Se poate obtine profit pe viitor daca pierzi la momentul actual. Uite un exemplu:7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Greedyu tau iti da 0, solutia corecta este 1000 :thumbup: (1 joaca cu 7, 7 cu 6, 6 cu 5, 5 cu 4, 4 cu 3, 3 cu 2, 2 cu 1) In caz de egalitate trebuie sa analizezi toti caii ce urmeaza dupa cei doi care se afla la egalitate si sa vezi care din cele doua cazuri ar fi mai bun (te las sa te prinzi). De asemenea daca la pasul i calul al lui Gigel ar pierde in fata calului lui Ionel atunci pui calul cu viteza cea mai mica a lui Gigel sa concureze cu calul lui Ionel, ca sa pastrezi caii cei mai buni pentru restul cailor lui Ionel. Titlul: 128 Curse de cai Scris de: cristi8 din Octombrie 24, 2005, 20:27:26 Citat In caz de egalitate trebuie sa analizezi toti caii ce urmeaza dupa cei doi care se afla la egalitate si sa vezi care din cele doua cazuri ar fi mai bun backtracking ? Titlul: 128 Curse de cai Scris de: Catalin Tiseanu din Octombrie 24, 2005, 22:43:21 ceva in O(N) asa ... back nu prea intra [ depinde ce intelegi prin back ].
Titlul: 128 Curse de cai Scris de: cristi8 din Octombrie 25, 2005, 19:07:00 pai din cate am inteles eu e O(2^N).
daca ai vitezele lui gigel egale cu cele ale lui ionel Cod: v1 v2 v3 v4 v5 vezi ca v1 sunt egale, treci la urmatoarele. vezi ca v2 sunt egale, treci la v3.. si tot asa.. si vine O(2^N) ..am inteles gresit ? Titlul: 128 Curse de cai Scris de: Bogdan-Alexandru Stoica din Octombrie 25, 2005, 19:26:24 La problema aceasta sunt doua solutii la care poti sa te gandesti :
1) greedy 2) dinamica Prima solutie este un N^2. Cristi, tu ai inceput bine cu backtracking-ul, dar trebuie sa vezi cum il faci astfel incat sa efectueze N^2 operatii. de fapt nu este nevoie sa generezi toate combinatiile intre caii lui ionel si caii lui gigel, ci doar cateva. A doua este o dinamica 2d ce se bazeaza pe trei chestii : ce faci cand calul tau e mai incet decat al adversarului, ce faci cand e mai rapid si ce faci cand caii sunt egali d.p.d.v al vitezei. Sper sa ajunt, nu sa supar, pe cineva cu hint-urile astea O:) . Daca vor fi probleme se poate sterge post-ul meu ;) Codare fericita in continuare. Btw. stie cineva cand invie evaluatoru :-' Titlul: 128 Curse de cai Scris de: Tiberiu-Lucian Florea din Octombrie 25, 2005, 20:41:20 Citat din mesajul lui: cristi8 pai din cate am inteles eu e O(2^N). daca ai vitezele lui gigel egale cu cele ale lui ionel Cod: v1 v2 v3 v4 v5 vezi ca v1 sunt egale, treci la urmatoarele. vezi ca v2 sunt egale, treci la v3.. si tot asa.. si vine O(2^N) ..am inteles gresit ? Nu te mai gandi la nimic ne-polinomial. :wink: Titlul: 128 Curse de cai Scris de: Claudiu Guiman din Octombrie 28, 2005, 21:02:27 am si eu o problema...... nu imi ajunge memoria (am o matrice de 1000 pe 2) si imi da eroarea RUN ERROR - Invalid memory reference . Cata memorie este disponibila?
Titlul: 128 Curse de cai Scris de: VladS din Octombrie 28, 2005, 21:57:14 Ce ai declarat tu are aproximativ 2 kb deci nu depasesti memoria. Ca sa te prinzi de ce primesti mesajul ala ai putea sa consulti
articolul din cadrul site-ului (http://info.devnet.ro/articole.php?page=art&art=57). Titlul: 128 Curse de cai Scris de: cristi8 din Octombrie 28, 2005, 21:57:26 iti intra si matrice 1000 pe 1000. sunt 64 de mb parca
vezi ca ti-o iau razna indicii si te duci in balarii Titlul: 128 Curse de cai Scris de: Claudiu Guiman din Octombrie 28, 2005, 22:03:12 nu depaseste
Titlul: Răspuns: 128 Curse de cai Scris de: Mihai Leonte din Aprilie 02, 2007, 11:09:06 Va rog eu mult, puneti in textul problemei si limitele la problema asta. De exemplu:
- Cate teste sunt in fisier? - Cat de mari/mici pot fi vitezele? Oricum, eu tot ia 0 si nu imi dau seama de ce :(. Fac cam asa ceva: (ambele grupuri de cai sortate desc) Suntem la gigel [ i ] : 1. gaseste cel mai rapid cal al lui Ionel pe care il poti bate si bate-l (eivdent, nu luam in calcul caii care deja au luat parte la concurs). 2. daca nu poate bate pe nimeni, vezi, totusi, poate macar faci o remiza. 3. daca nici macar o remiza nu poti face, atunci de acum incolo sigur pierd toti caii lui Gigel, pt. ca gigel[i+1]<=gigel[ i ], oricare ar fi i=1,n-1 Am incercat o gramada de teste si toate dau corect. Si deja stau de ceva vreme la problema asta, si ma frustreaza. Titlul: Răspuns: 128 Curse de cai Scris de: Florian Marcu din Aprilie 08, 2007, 09:44:25 Uite un exemplu: 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Greedyu tau iti da 0, solutia corecta este 1000 :thumbup: (1 joaca cu 7, 7 cu 6, 6 cu 5, 5 cu 4, 4 cu 3, 3 cu 2, 2 cu 1) Nu stiu dak ideea ta functioneaza... [later edit] Nu ! Am gresit eu...iti da corect...sorry.. Dar si eu am aceeasi problema... iau 0 puncte cu un algoritm care da corect pe toate exemplele mele...help me careva,...am citit toate mesajele de pe forum...dar pb asta ma dispera... :fool: Titlul: Răspuns: 128 Curse de cai Scris de: Savin Tiberiu din Iunie 08, 2007, 11:46:13 totusi la problema asta ar mai trebui puse niste restrictii, cum ar fi viteza maxima a unui cal :-'
Titlul: Răspuns: 128 Curse de cai Scris de: Bondane Cosmin din Iulie 10, 2007, 21:39:12 Cat va da pentru :
Cod: 1 Titlul: Răspuns: 128 Curse de cai Scris de: Adrian Diaconu din Iulie 10, 2007, 22:11:22 Citat 3000 Titlul: Răspuns: 128 Curse de cai Scris de: Ionescu Robert Marius din Iulie 11, 2007, 12:30:12 mie imi da tot 3000 si pe orice test facut de mine da bine,si iau incorect :sad:
Titlul: Răspuns: 128 Curse de cai Scris de: Sebastian Crisan din Iulie 12, 2007, 09:11:49 Ia vedeti ce obtineti pentru
Citat 9 6 4 4 4 4 2 2 2 1 4 4 4 4 4 2 2 1 1 ar trebui sa va dea Citat 600 Edit: Am corectat raspunsul. Titlul: Răspuns: 128 Curse de cai Scris de: Adrian Diaconu din Iulie 12, 2007, 11:15:52 Cred ca ar trebui sa dea
Citat 600 Ii pui sa concureze asa: Citat 6 4 4 4 4 2 2 2 1 4 4 4 4 2 2 1 1 4 Titlul: Răspuns: 128 Curse de cai Scris de: Gabriel Bitis din August 30, 2007, 21:31:24 am verificat toate exemplele de pe forum + vreo 2 de'ale mele.. toate imi dau cat ar trebui (ma refer la cele de pe forum.. )... totusi.. iau incorect.... :'(.. vreo sugestie?
Titlul: Răspuns: 128 Curse de cai Scris de: Hasna Robert din August 12, 2008, 18:13:33 Toate testele de pe forum si exemplu imi dau bine. Sortez crescator si fol doua deque.
Are cineva timp sa se uite peste sursa mea si sa imi dea un exemplu pe care nu merge? Titlul: Răspuns: 128 Curse de cai Scris de: Marius Stroe din August 12, 2008, 22:06:45 Nu ştiu unde ai folosit deque. :) Se poate şi fără.
Titlul: Răspuns: 128 Curse de cai Scris de: A Cosmina - vechi din Iulie 18, 2009, 22:00:40 Fara dinamica/greedy nu se poate? Merita incercat un brute ? :sad:
Titlul: Răspuns: 128 Curse de cai Scris de: Andrei Grigorean din Iulie 19, 2009, 00:03:01 Nu prea sunt probleme pe infoarena care sa mearga cu brute :).
Titlul: Răspuns: 128 Curse de cai Scris de: A Cosmina - vechi din Iulie 19, 2009, 09:07:55 Am inteles... :'(
Titlul: Răspuns: 128 Curse de cai Scris de: Marius Stroe din Iulie 19, 2009, 14:09:04 Fara dinamica/greedy nu se poate? Merita incercat un brute ? :sad: Pentru ca unul să joace cât mai bine, celălalt trebuie să joace cât mai prost. Ţin minte că jucând cât mai prost am reuşit să rezolv foarte uşor problema cu Greedy. Titlul: Răspuns: 128 Curse de cai Scris de: A Cosmina - vechi din Iulie 19, 2009, 15:46:33 Eu m-am gandit sa sortez caii crescator. Compar primul cal al lui Gigel cu armasarul lui Ionel. Daca este mai mare Gigel +200,daca este egal 0, daca este mai mic -200.
Si asa aflu profitul lui Gigel. Nu cred ca este varianta cea mai optima,dar asta mi-a venit in minte. Eu Greedy si dinamica nu stiu... :sad: Titlul: Răspuns: 128 Curse de cai Scris de: Emanuel Cinca din Iulie 19, 2009, 23:09:11 Nu cred ca e chiar corect ce ai spus tu, dar sa stii ca modalitatea ta de rezolvare e o tehnica greedy. Pe scurt in asta consta greedy: alegerea variantei optime (ce pare optima) la fiecare pas si de multe ori sortezi intr-un anumit mod datele. Sper ca nu m-am bagat in seama degeaba :? Bafta! :peacefingers:
PS:Esti fana LP? :D Titlul: Răspuns: 128 Curse de cai Scris de: A Cosmina - vechi din Iulie 20, 2009, 08:11:48 Mersi pentru indicatii. O sa revin la problema asta dupa ce citesc cate ceva despre greedy. :ok:
P.S: Linkin Park rocks. :twisted: Titlul: Răspuns: 128 Curse de cai Scris de: Marginean Bogdan Alexandru din Martie 20, 2011, 17:44:44 Hi, thread necromancer here. All jokes aside, asta-i rezolvarea mea:
Cod: #include <stdio.h> Mai exact, eu sortez crescator caii (retinuti in 2 siruri) si incepand cu primul cal al lui Gigel (cel mai slab), verific cu fiecare cal de-al lui Ionel (incepand cu cel mai puternic -> parcurg descrescator) care-i situatia. Fiecare cal de-al lui Gigel incearca sa bata un cal cat mai puternic de la Ionel. Daca nu poate asta, atunci il scoate pe cel mai puternic cal de-al lui Ionel din joc (din multimea de cai care nu au participat inca la curse), pentru a face viata mai usoara cailor ce urmeaza. Daca cumva nu poate bate un cal si nici nu-i unul mai puternic disponibil, face remiza. infi marcheaza un cal care a participat deja la cursa. Pe toate exemplele mele da bine. La fel si pe cele de pe forum. Nu prea imi vine nimic in minte in momentul asta. In caz ca e cineva de pe aici dispus sa se uite la vechile surse de 100p pentru mine, ar fi super :) Sau daca greseala mea se observa usor, astept sugestii. Titlul: Răspuns: 128 Curse de cai Scris de: Dragos Martac din Martie 31, 2013, 14:13:33 Cat de mare poate sa fie T-ul (numarul de teste)? ???
Titlul: Răspuns: 128 Curse de cai Scris de: Dumitru Andrei Georgian din Aprilie 01, 2013, 13:17:29 Numarul de teste nu influenteaza in nici un fel algoritmul de rezolvare :)
Titlul: Răspuns: 128 Curse de cai Scris de: Paul-Dan Baltescu din Aprilie 01, 2013, 13:38:01 Conteaza, daca vrei sa stii ca algoritmul tau are complexitatea buna. T <= 20, am completat si enuntul.
Titlul: Răspuns: 128 Curse de cai Scris de: Dragos Martac din Aprilie 04, 2013, 11:06:03 Mersi mult :) Eu stiu sa fac problema in O(T*n^2) dar este cam la limita... care este complexitatea buna?
Titlul: Răspuns: 128 Curse de cai Scris de: Paul-Dan Baltescu din Aprilie 04, 2013, 12:31:01 Da, e ok.
Titlul: Răspuns: 128 Curse de cai Scris de: Popa Andrei din Decembrie 15, 2013, 18:29:36 Testul nu este suficient de bun. Iau 100 dar pe testul:
2 20 20 20 30 imi da 0 , ar trebui sa-mi dea -200. Titlul: Răspuns: 128 Curse de cai Scris de: Potra Vlad din Septembrie 24, 2014, 00:34:35 Pe absolut toate testele care le-am facut imi da bine (si pe cele de pe forum), si tot primesc 0 puncte :angry:. Va rog, veniti cu niste cazuri particulare.
Uitati-va va rog si pe sursa http://www.infoarena.ro/job_detail/1232853?action=view-source (http://www.infoarena.ro/job_detail/1232853?action=view-source) Titlul: Răspuns: 128 Curse de cai Scris de: Patrick Sava din Septembrie 24, 2014, 21:34:34 Nu cred ca ai vreo sansa sa scoti problema asta de 100 cu o complexitate mai buna de O ( n ^ 2 ) . Poti incerca o varianta cu dinamica sau o varianta cu un greedy care se vrea a fi mai degraba un brut. :) Numai bine si succes . Solutia oferita de tine nu cred ca este optima . Cred ca greseala e la nivelul conceptual,nu la nivelul care tine de implementare.
Titlul: Răspuns: 128 Curse de cai Scris de: Andi Arnautu din Noiembrie 30, 2014, 02:52:04 Frumoasa problema! :D
|