Titlul: 491 Lacusta Scris de: Adrian Diaconu din August 14, 2007, 10:34:44 Aici puteţi discuta despre problema Lacusta (http://infoarena.ro/problema/lacusta).
Titlul: Răspuns: 491 Lacusta Scris de: Savin Tiberiu din August 15, 2007, 12:08:10 ati putea pune si o explicatie. cum se obtine suma 28? nu reusesc sa inteleg cum se fac acele deplasari. Din ce am inteles eu la o deplasare ma mut pe o linie invecinata in orice coloana, dar asa as putea obtine suma 14 si ar fi mai mica decat 28.
Titlul: Răspuns: 491 Lacusta Scris de: Dumitran Adrian Marius din August 15, 2007, 12:15:32 am impresia ca se misca asa
cost 3 + 1 1 - > 1 3 + 5 1 3 - > 2 3 + 3 2 3 - > 2 2 + 6 2 2 - > 3 2 + 3 3 2 - > 3 3 + 3 3 3 -> 4 3 + 3 4 3 -> 4 5 + 2 = 28 sper sa te ajute Titlul: Răspuns: 491 Lacusta Scris de: HighScore din August 15, 2007, 15:49:04 idee e ca esti obligat ca pe fiecare linie sa "calci" de 2 ori, si de aceea sunt 2m sarituri si nu poti pur si simplu sa te duci
1-1 1-5 5-5 ca sa obtii 14 LE: in enuntu initial al problemei era si explicatia, si cred ca nu s-ar supara nimeni daca s-ar adauga si in arhiva Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din August 17, 2007, 11:24:45 LE: in enuntu initial al problemei era si explicatia, si cred ca nu s-ar supara nimeni daca s-ar adauga si in arhiva S-a rezolvat! :ok: Titlul: Răspuns: 491 Lacusta Scris de: Mihai Pantis din Octombrie 17, 2007, 09:58:22 Deplasarea se face intotdeauna in ordinea saritura-pas, sau pot avea intai pasul si apoi saritura?
Titlul: Răspuns: 491 Lacusta Scris de: HighScore din Octombrie 17, 2007, 11:50:23 Citat La fiecare deplasare se executa un salt pe orizontala si un pas pe verticala. deci cam daTitlul: Răspuns: 491 Lacusta Scris de: Mihai Pantis din Octombrie 17, 2007, 12:17:06 Nu reiese de aici ordinea. Deci pot avea 2 salturi consecutive sau 2 pasi consecutivi (care fac parte din doua deplasari diferite)?
Titlul: Răspuns: 491 Lacusta Scris de: Ionescu Vlad din Octombrie 17, 2007, 12:37:54 O deplasare = salt + pas. Asta inseamna ca o sa ai o insiruire de miscari salt + pas + salt + pas + salt + pas + ...
Nu poti avea doua salturi sau doi pasi consecutivi (iar daca fac parte din doua deplasari diferite nu mai sunt consecutive... n-am inteles ce ai vrut sa zici cu asta) Titlul: Răspuns: 491 Lacusta Scris de: Mazilu Victor din Ianuarie 19, 2008, 11:41:10 In file included from /usr/include/c++/4.2/backward/fstream.h:31,
from user.cpp:1: Asta ce eroare mai este???????????? ](*,) Titlul: Răspuns: 491 Lacusta Scris de: Stefan Istrate din Ianuarie 19, 2008, 11:57:12 Ce ai selectat tu este doar locul unde apare problema. Nu este o eroare, ci un warning:
Citat #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated. Ti se sugereaza sa folosesti headerul <fstream> in loc de <fstream.h> pentru a scrie cod in conformitate cu noile standarde C++. :)Titlul: Răspuns: 491 Lacusta Scris de: Mazilu Victor din Ianuarie 19, 2008, 12:04:27 Se intampa ceva ciudat .. Cand initializez matricea A[20][20] imi da evaluare completa : 0 puncte iar la A[250][250], asa cum ar trebui sa fie matricea imi da eroare de compilare...dar exact cu acelasi mesaj de eroare in ambele cauri (vb de mesajul care l-am postat mai sus)...PS Acasa merge problema ...rezultatul este 28 pentru exemplul care este pe infoarena..Am rezolvat cu programare dinamica
Titlul: Răspuns: 491 Lacusta Scris de: Stefan Istrate din Ianuarie 19, 2008, 12:09:15 Eroarea de compilare o primesti din cauza ca nu sunt declarate cout si endl. Incearca sa pui la inceput linia
Cod: using namespace std; Titlul: Răspuns: 491 Lacusta Scris de: Popescu Marius din Mai 19, 2008, 19:14:15 Ce ma dispera problema daca imi declar doua matrice de 250 iau memory limit exces pe ultimu test iar daca pun 249 iau incorect pe primu test ... asta inseamna ca primu test este de 250/250 si aveti vreun sfat pentru mine ce as putea sa fac ?
LE: Am reusit sa o rezolv .. de 100 chestia era ca trebuia sa imi declar toate variabile unsigned int ca sa scot memoria la mine erau de tip int scz ptr mesajul de dinainte. Iarasi ma luat gura pe dinainte si mam apucat sa postez pe forum cu toate ca am promis ca nu mai fac asa ceva ... Titlul: Răspuns: 491 Lacusta Scris de: MciprianM din Mai 20, 2008, 08:39:17 int si unsigned int ocupa tot atata memorie
Titlul: Răspuns: 491 Lacusta Scris de: Popescu Marius din Mai 20, 2008, 16:43:56 Nu cred pentru ca aveam doua matrice de 250 /250 si memoria era la maxim luam si Memory limit exces pe ultimu test iar dupa ce am pus unsigned int a scazut memoria de la 654 la 420 deci cred ca e diferenta astfel nu imi explic de ce a fost asa mare diferenta dupa ce am pus unsigned int.
Titlul: Răspuns: 491 Lacusta Scris de: Cosmin-Mihai Tutunaru din Decembrie 15, 2008, 20:31:27 Am creeat doua tablouri asa:
unsigned char a[252][252]; //252*252*1/1024=62KB int b[252][252]; //252*252*4/1024=248KB 62+248+cateva variabile int...... sigur e mai putin de 600KB... De ce Memory limit exces pe primul si ultimul test? Calculez eu cumva memoria folosita gresit? Titlul: Răspuns: 491 Lacusta Scris de: Tirca Bogdan din Decembrie 26, 2008, 11:33:39 Incearca sa pui unsigned short :)
Titlul: Răspuns: 491 Lacusta Scris de: Cosmin-Mihai Tutunaru din Ianuarie 17, 2009, 17:01:08 Incearca sa pui unsigned short :) Tot imi da "Memory limit exces" pe primul si pe ultimul test....insa nu inteleg de ce.....pt ca dupa calculele mele, eu nu folosesc 600KB de memorie :(..... LE: Scz....n-am fost atent...acum cand am modificat cu unsigned short imi da "Time limit exceeded." la primul si ultimul test ;)) Cum se rezolva problema?....eu am facut-o in o(m*n^2)...... LE: Am reusit pana la urma 100 in (M*2*n) :yahoo: ... si am vazut k acum imi incape o matrice de tip char si una de tip int.....asta e cam ciudat.... Titlul: Răspuns: 491 Lacusta Scris de: Danci Emanuel Sebastian din Ianuarie 23, 2009, 15:33:55 Stie cineva ce au mai special testele 5 si 9? La alea iau incorect...de ce?
Titlul: Răspuns: 491 Lacusta Scris de: Emanuel Cinca din Ianuarie 23, 2009, 19:18:34 nu prea e nimic special :-k
cel putin eu nu am intalnit problema asta... mai verifica o data implementarea... poate nu iti gasesti corect valorile alea minime :) Titlul: Răspuns: 491 Lacusta Scris de: alexandru din Februarie 08, 2009, 20:10:49 Imi zice si mie cineva ce este gresit la metoda asta de rezolvare, sa luam exepmlul din problema :
4 5 3 4 5 7 9 6 6 3 4 4 6 3 3 9 6 6 5 3 8 2 initial s=a[1][1]+a[n][m],adica s=5; apoi incep pe linia n calculez suma de pe fiecare pozitie, adun nr de deasupra, execptand pozitia m si linia devide : 12 8 6 17 x(unde se afla lacusta), selectez minimul 6 si apoi pun lacusta pe el, apoi restaurez linia :) si urc pe linia n-1. fac dinou suma si linia devine 12 9 x 13 10 selectez minimul si tot asa pana ce linia ==1 unde ma opresc La exemplu suma devine 28 Dar pentru exemplu 5 5 9 1 9 8 8 6 6 9 4 4 1 2 7 9 6 2 6 3 3 8 5 8 2 3 8 Programul meu afiseaza 45 in loc de 42 Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din Februarie 08, 2009, 21:09:02 Cod: 5 5 Pt exemplul asta, drumul optim este: (1,1) -> (1,2) -> (2,2) -> (2,5) -> (3,5) -> (3,1) -> (4,1) -> (4,3) -> (5,3) -> (5,5). Insumand, 9+1+6+4+6+1+2+3+2+8 = 42. Problema se rezolva cu programare dinamica. Ce ai facut tu se numeste greedy, si nu da solutia optima tot timpul, desi s-ar putea sa prinzi ceva puncte. Spor! Titlul: Răspuns: 491 Lacusta Scris de: alexandru din Februarie 09, 2009, 06:35:25 Multumesc,da am prins 10 pct si la programare dinamica trebuie sa mai lucrez ca nu inteleg nimic din ea , din pacate :(
Titlul: Răspuns: 491 Lacusta Scris de: Elma Moonbeam din Februarie 22, 2009, 14:57:24 Stie cineva un site in care este explicata ( pe intelesul oricui )dinamica?
Titlul: Răspuns: 491 Lacusta Scris de: Andrei Misarca din Februarie 22, 2009, 16:38:51 Acilea (http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=dynProg)
Titlul: Răspuns: 491 Lacusta Scris de: alexandru din Martie 01, 2009, 14:02:05 Se poate afisa testul 1 sau testul 10?....ca deja turbez ](*,)...am incercat programul meu pe toate testele de la oji 2005 si afiseaza rezultatul corect si se incadreaza in timp..... :(
Titlul: Răspuns: 491 Lacusta Scris de: Dragos Oprica din Martie 01, 2009, 18:27:38 ce primesti? WA, TLE sau KBS?
pentru kbs rezolvi daca iti declari matricile de tip short pentru a intra in memorie Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din Martie 01, 2009, 18:49:27 Vezi ca ai nevoie doar de ultimile doua linii, nu de toata matricea [ la dinamica ]. Deci, retine doar ultimile doua linii si o sa intre in memorie. Am impresia ca daca declari short matricea de la dinamica, nu o sa iti dea raspunsuri corecte [ pt ca depasesti domeniul de valori - short e pe 8 biti (nu?) ] Spor!
Titlul: Răspuns: 491 Lacusta Scris de: Andrei Grigorean din Martie 01, 2009, 19:14:01 In gcc short este pe 16 biti.
Titlul: Răspuns: 491 Lacusta Scris de: alexandru din Martie 01, 2009, 19:44:31 nu, imi afiseaza Incorect :P ... assta ma deranzeaza.
Eu folosesc o matrice de tip int :d...:D Titlul: Răspuns: 491 Lacusta Scris de: Dragos Oprica din Martie 01, 2009, 20:11:55 In gcc short este pe 16 biti. cred ca si in borland short e tot 16 biti, ca doar char e pe 8 biti Titlul: Răspuns: 491 Lacusta Scris de: alexandru din Martie 02, 2009, 10:50:01 Am gasit greseala, la mine a[n][m] era doar de 101X101, in loc de 251X251 :D.
Dar e un lucru ciudat folosind functiile din stdio.h ...nu imi aparea KBS11, ci Incorect si la un moment dat Wa. Dar daca folosesc functiile din fstream , imi apare. Imi explica si mie cineva de ce se intampla acest lucru? @Marcu Florian pentru a genera matrice la dinamica n-ai nevoie decat de o varibila, nu de o matrice , sau un vector :P Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din Martie 02, 2009, 15:19:53 @Marcu Florian pentru a genera matrice la dinamica n-ai nevoie decat de o varibila, nu de o matrice , sau un vector :P Cred totusi ca ai nevoie de cel putin patru variabile. ( doua minime pt linia curenta si inca doua minime pt linia anteriora. Si probabil si pozitiile lor (coloanele), deci inca 4 = > 8 variabile) Gresesc? :)Titlul: Răspuns: 491 Lacusta Scris de: alexandru din Martie 02, 2009, 16:50:30 Pai ai nevoie de 2 varibile pentru minimile de pe linia anterioara +pozitia "celui mai mic minim :P" + alte 2 minime pentru linia curenta + inca o varibila pentru pozitia "celui mai mic minim :P", si o varibila pentru construirea drumului curent => 7 varibile :P
[later]:.....am uitat si un minim pentru ultima linie, da vin 8 :) Titlul: Răspuns: 491 Lacusta Scris de: Mocanu Marius din Martie 24, 2009, 17:28:22 sal,dati-mi si mie un sfat..ce trebuie sa fac...treb sa generez toate posibilitatile unui drum,iau din marginea dreapta a matricii si incerc sa gasesc minimele pentru orice drum pe care l-a luat...cum fac asta?
Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din Martie 24, 2009, 21:08:56 Ce spui tu se numeste backtracking, si nu ti-ar intra in timp sub nicio forma. Problema se rezolva prin programare dinamica. Daca nu stii programare dinamica, iti recomand niste probleme clasice ( a se citi "mai usoare"), precum subsir crescator maximal (http://infoarena.ro/problema/scmax) (incearca mai intai de 70 de puncte), cel mai lung subsir comun (http://infoarena.ro/problema/cmlsc), suma in triunghi, etc. Ca sa vezi rezolvarea la problema asta, vezi ca exista si un articol cu solutii in arhiva OJI 2005, din sectiunea Downloads. Spor! :)
Titlul: Răspuns: 491 Lacusta Scris de: Mocanu Marius din Martie 25, 2009, 12:15:49 mersi...la prog dinamica am inteles cum e treaba la problema cu monede, sau la energii...faci programu sa compuna ceva din ce ai aflat pe parcurs...dar nu vad cum poti aplica aici acelasi principiu
Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din Martie 25, 2009, 12:18:54 Notezi cu b[ i ][j] - cel mai scurt drum ca sa ajungi pe pozitia (i,j). Evident, rezultatul va fi in b[m][n]. Acum, trebuie sa te gandesti cum poti ajunge in pozitia (i,j). Evident, sunt mai multe variante, asa ca trebuie sa alegi minimul. Spor!
Titlul: Răspuns: 491 Lacusta Scris de: Mocanu Marius din Martie 25, 2009, 16:25:06 e ok sa fac suma minima dintre configuratii de genu asta , aplicate pe toate liniile si coloanele?
0 0 0 0 0 0 0 0 0 0 0 * sau 0 * 0 0 0 0 0 * 0 * * * 0 0 0 0 0 0 0 0 0 0 * 0 sau * 0 0 0 0 0 * * * * * Titlul: Răspuns: 491 Lacusta Scris de: Florian Marcu din Martie 25, 2009, 16:59:48 e ok sa fac suma minima dintre configuratii de genu asta , aplicate pe toate liniile si coloanele? Nu. Citeste solutia oficiala si sa o sa intelegi. :) Titlul: Răspuns: 491 Lacusta Scris de: Alexandru-Iancu Caragicu din Noiembrie 11, 2009, 17:59:28 Am si eu o intrebare...
Pentru datele de intrare: 2 2 1 2 3 4 Ce raspuns e? Mie-mi pare imposibil pt ca nu ai voie sa faci un pas direct pe campul final (trebuie sa termini cu un salt), si de asemenea trebuie sa si incepi cu un salt... Titlul: Răspuns: 491 Lacusta Scris de: Irimescu Stefan din Martie 02, 2011, 11:35:24 am si eu o problema...un singur test imi da incorect si nu am idee de ce. Nu are nimeni testele ? ](*,) ](*,)
Titlul: Răspuns: 491 Lacusta Scris de: Lepadat Mihai-Alexandru din Martie 02, 2011, 13:31:13 am si eu o problema...un singur test imi da incorect si nu am idee de ce. Nu are nimeni testele ? ](*,) ](*,) Testele nu se fac publice din cate stiu eu. [-X Titlul: Răspuns: 491 Lacusta Scris de: Simoiu Robert din Martie 02, 2011, 13:50:55 I-ale de la Downloads (http://infoarena.ro/downloads), sectiunea OJI 2005.
[LE] Skull, daca problema s-a dat la un concurs gen olimpiada, poti sa iei testele pentru ca sunt oficiale :). Titlul: Răspuns: 491 Lacusta Scris de: Codoban Claudiu din Martie 16, 2011, 12:42:04 sunt tare ciudate testele astea. Am facut tot felul de incercari din cauza ca primeam la ultimul test si la primul test MLE sau Signal 11.
Daca declarati cele 2 matrici ca short de 257x257 si restul variabilelor ca int, o sa functioneze bine Titlul: Răspuns: 491 Lacusta Scris de: George Marcus din Martie 16, 2011, 18:59:24 Teoretic nu ar trebui sa functioneze asa pentru ca ar putea fi n=m=250 si toate elementele matricii 250, caz in care depaseste short. Gresesc cumva?
Titlul: Răspuns: 491 Lacusta Scris de: Dragos Oprica din Martie 17, 2011, 09:07:06 Teoretic nu ar trebui sa functioneze asa pentru ca ar putea fi n=m=250 si toate elementele matricii 250, caz in care depaseste short. Gresesc cumva? Tipul de date short int retine numere pana la 2^16, deci dacă ai numere pana la 250, ar trebui sa intre. Titlul: Răspuns: 491 Lacusta Scris de: George Marcus din Martie 17, 2011, 13:29:04 Da, dar, din cate am inteles eu, el spunea sa declaram si matricea pentru suma minima tot short. 250*250 > 32767. Cred ca merge cu unsigned short.
Titlul: Răspuns: 491 Lacusta Scris de: Plesa Mihail Iulian din Ianuarie 10, 2012, 14:48:49 Imi puteti da niste indicatii de rezolvare? Eu cred ca se rezolva cu ajutorul programarii dinamice dar nu stiu cum....va rog niste indicatii.
Multumesc! Titlul: Răspuns: 491 Lacusta Scris de: George Marcus din Ianuarie 10, 2012, 23:27:06 Cauta solutia oficiala. (http://infoarena.ro/downloads)
Titlul: Răspuns: 491 Lacusta Scris de: Alex Ovidiu Nitu din Ianuarie 11, 2012, 18:36:25 Imi puteti da niste indicatii de rezolvare? Eu cred ca se rezolva cu ajutorul programarii dinamice dar nu stiu cum....va rog niste indicatii. Incearca sa vezi cum ai proceda pentru cazul cu m=1, iar apoi cu m=2. O sa te prinzi repede :ok:Multumesc! Apropo vezi ca in solutia oficiala limitele matricei sunt <= 100. Pe Infoarena 1 < n,m <= 250 deci nu uita sa modifici :) Titlul: Răspuns: 491 Lacusta Scris de: Tudorica Andrei din Noiembrie 14, 2012, 15:43:03 am luat testele oficiale si pe testul 1 raspunsul meu este exact acelasi cu raspunsul oficial si totusi iau Incorect.
Are cineva vreo explicatie? :readthis: Titlul: Răspuns: 491 Lacusta Scris de: Alex Velea din Noiembrie 14, 2012, 17:34:42 Incearca sa afisezi cu streamuri .. dunno .. pare destul de ok, sincer ^^
Poate ti se duce de la unsigned short .. nu ar trebui .. nu stiu ce sa zic. Tine si tu acolo o linie si pune int. Titlul: Răspuns: 491 Lacusta Scris de: Pirtoaca George Sebastian din Noiembrie 14, 2012, 18:23:50 Ai grija ca testele pot fi in alta ordine ( primul de pe infoarena poate fi ultimul dintre cele oficiale ). Poti reduce memoria folosind doar
doua linii din matrice , iar apoi pune int in loc de short. Bafta! Titlul: Răspuns: 491 Lacusta Scris de: Tudorica Andrei din Noiembrie 15, 2012, 00:47:56 SebiSebi e wa, nu kbs sau tle:-?
Titlul: Răspuns: 491 Lacusta Scris de: Tudorica Andrei din Noiembrie 15, 2012, 08:27:43 Am incercat testele si functioneaza toate...
Titlul: Răspuns: 491 Lacusta Scris de: Pirtoaca George Sebastian din Noiembrie 16, 2012, 15:56:16 Pai, nu iei KBS daca iesi din limitele unui tip de date. Eu cred ca tu iei incorect pentru ca depasesti limita short int-ului. Daca pui int
s-ar putea sa iti iasa din memorie , asa ca foloseste doar 2 linii din matrice. :thumbup: Titlul: Răspuns: 491 Lacusta Scris de: Tudorica Andrei din Noiembrie 16, 2012, 16:33:50 ok. multumesc :D
Titlul: Răspuns: 491 Lacusta Scris de: Ilie Andrei din Ianuarie 26, 2013, 11:00:22 intampin si eu o dificultate similiara :( primul test imi da wa si pe restul am ok, iar pe campion am ok pe toate... any idea, please?
Titlul: Răspuns: 491 Lacusta Scris de: Ungurianu Alexandru din Iunie 03, 2013, 20:21:38 Complexitatea ar trebui sa fie O(N*M) sau O(N*M2)??
Titlul: Răspuns: 491 Lacusta Scris de: Salajan Razvan din Iunie 03, 2013, 20:25:21 Asa dupa tine, cat crezi ca e ?
Titlul: Răspuns: 491 Lacusta Scris de: Mercea Otniel din Decembrie 01, 2014, 22:37:22 am facut programu ca si la oji(exact) si i-au memory limit exced.Tot am citit forumul.Are de a face cu tipul datelor sau sa fac numai cu 2 linii.Precizez ca pe toate cazurile de la oji imi da corect
Titlul: Răspuns: 491 Lacusta Scris de: Andi Arnautu din Decembrie 03, 2014, 22:19:14 Nu trebuie sa lucrezi cu 2 linii, mie mi-a iesit cu toata matricea. :) Ai grija la tipurile de date!
Titlul: Răspuns: 491 Lacusta Scris de: cont-vechi din Martie 24, 2015, 19:48:28 De ce nu este valid drumul : (1,1) -> (1,2) -> (2,2) -> (2,3)-> (3,3) ->(3,5) -> (4,5) cu costul minim 27 ??? pentru ca totusi respecta conditiile deplasarii ?
Titlul: Răspuns: 491 Lacusta Scris de: Roman Tudor din Februarie 10, 2016, 22:25:20 Care ar putea fi cauzele pentru care primesc Memory Limit Exceeded pe primul test? Țin să menționez faptul că am declarat toate variabilele de tip unsigned short int și dimensiunile maxime ale matricelor utilizate sunt de 251x251.
Titlul: Răspuns: 491 Lacusta Scris de: Curiman Andrei din Februarie 22, 2016, 18:30:47 De ce e asa putina memorie? Pe varena sunt 2048 kbytes ...
Titlul: Răspuns: 491 Lacusta Scris de: Ana-Maria Simionescu din Februarie 25, 2016, 16:08:55 :angry: :angry: :angry: :angry: :angry:
Titlul: Răspuns: 491 Lacusta Scris de: Alex S Hill din Iunie 22, 2017, 16:12:44 traseul asta mie imi da suma 27.
1 1 - 1 2 2 2 - 2 3 3 3 - 3 5 4 5 |