Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 765 Dictree  (Citit de 6461 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« : Septembrie 13, 2008, 15:13:38 »

Aici puteti discuta despre problema Dictree.
Memorat
Kid0
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #1 : Octombrie 10, 2008, 23:10:54 »

Salut, un hint ceva despre cum ar trebui rezolvat?

Folosesc o structura de date
Cod:
typedef struct _nod
{
char info;
_nod *fiu;
_nod *frate;
} nod;

dar depaseste memoria maxima alocata cu 200-300k.

Ideea este ca fiii unui nod sunt fratii primului fiu si deci *frate va fi o lista de fii. Am incercat si cu __attribute__((__packed__)) dar nu a redus cu prea mult dimensiunea.
« Ultima modificare: Octombrie 10, 2008, 23:32:27 de către Shizzle Nizzle » Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #2 : Octombrie 10, 2008, 23:32:03 »

Si eu am incercat cu construirea efectiva a arborelui si a iesit din memorie. Incearca sa retii cuvintele intr'o matrice, le sortezi, apoi vezi care se suprapun si numeri cate litere trebuie introduse in arbore.
Memorat
Kid0
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #3 : Octombrie 11, 2008, 16:13:15 »

Mersi.
A mers intradevar asa. Desi asta a fost si prima mea idee de rezolvare, traiam cu impresia ca sortarea tabelei de cuvinte dureaza prea mult si ca nu se va incadra, si de aceea am trecut la crearea arborelui, care din ce am observat este ceva mai rapid.
Insa si std::sort se descurca bine. Oare un radixsort s-ar descurca mai bine?
Memorat
alex_mircescu
Client obisnuit
**

Karma: -15
Deconectat Deconectat

Mesaje: 55



Vezi Profilul
« Răspunde #4 : Noiembrie 06, 2008, 17:57:49 »

Am si eu o intrebare...  Confused
Cum pot sorta un vector de stringuri ??  Embarassed

Am incercat asa ceva in program:

Cod:
int cmp(const void *a, const void *b) {
return *(char *)a - *(char *)b;
}
.............
.............
//apelarea
qsort(v + 1, n, sizeof(v[0]), cmp);
.............

Nu sorteaza cum trebuie (lexicografic)... AJUTOR?   sad
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #5 : Noiembrie 06, 2008, 20:26:05 »

Slabe sanse sa reusesti cu qsort din stdlib. Poate cu sort-ul din algorithm + clasa string, dar cred ca e prea mare bataia de cap.

Eu as asocia vectorului tau de stringuri un "vector de pozitii" O, care are semnificatia ca daca ordonez vectorul de stringuri, voi avea pe pozitia i stringul O[ i ]. Initial, O[ i ] = i. Folosesc o functie de sortare (acum merge si qsort), cu o functie de comparare de genul:

Cod:
int compare( int a, int b ) {
     return strcmp(S[a],S[b]);           // S este vectorul de stringuri
}

Un exemplu:
Cod:
Initial:
S                O
----------------------
mama             1
tata             2
amam             3
atat             4
Cod:
Dupa sortare:
S                O
----------------------
amam             3
atat             4
mama             1
tata             2


Sper ca poti adapta ideea nevoilor tale Wink
Memorat
zloteanu.adrian
Strain
*

Karma: -9
Deconectat Deconectat

Mesaje: 38



Vezi Profilul
« Răspunde #6 : Septembrie 12, 2009, 15:02:17 »

cum pot sa sortez rapid primul element al fiecarei linii dintr-o  matrice(int)?
« Ultima modificare: Septembrie 12, 2009, 15:40:00 de către zloteanu adrian nichita » Memorat
PavelRazvan
Strain
*

Karma: 11
Deconectat Deconectat

Mesaje: 25



Vezi Profilul
« Răspunde #7 : Decembrie 07, 2009, 18:26:33 »

Citat
Un exemplu valoreaza cat 1000 de cuvinte.
Corect Ok
Memorat
otilia_s
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #8 : Martie 15, 2010, 18:59:07 »

Puteti sa imi dati si mie va rog inca un exemplu, poate unul mai special? Nu reusesc sa imi dau seama unde greseste rezolvarea mea.  Folosesc cam aceeasi idee, cea cu sortarea. Confused
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #9 : August 19, 2010, 12:44:21 »

Uite niste exemple, sper sa te ajute :
Cod:
10
sdlgfnsdigbsdibgisdfsdfsdfsdfsdfdsfdsfds
dsfsdfsdsdifbgsduusidbiusdgsdgsdgsdg
sdgs
dgsdgsdgsdgsdgsgsdgsdgsdgsdgsdg
cghuinsdugbsdugsgsdg
sdg
sdgsdgsgdsgdsgdgsdsgdsgdgsdgsdsgd
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
sdsdgjsiogsdgnisongsiodgsd
jkjjjjjgjsdgsdg

----------------------

12
a
b
c
d
e
f
g
h
i
j
k
l

Cod:
229

---

13

Iar aici unul mai mare :  http://www.2shared.com/file/GjzZL2DP/Desktop.html
Memorat
belginstirbu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #10 : Iunie 18, 2012, 10:08:34 »

Dacă toate cuvintele încep cu aceeași literă, nu cred că mai trebuie adăugată acea rădăcină neetichetată, deoarece rădăcina poate fi un nod cu prima literă a cuvintelor. Eu am rezolvat ținând cont de acest lucru și programul a picat testul 2 (restul le-a trecut). Când am modificat programul astfel încât să adauge acea rădăcină neetichetată în orice caz, a trecut și testul 2.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #11 : Iunie 18, 2012, 18:45:13 »

Muchiile sunt etichetate cu litere, nu nodurile.
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #12 : Iunie 18, 2012, 18:58:34 »

A luat cineva 100 in pascal cu asa limita de timp?? Daca nu cred ca ar trebui putin marita limita pentru ca solutia care intra in timp scrisa in cpp sa intre in timp si in pascal  Confused Mad
Memorat
Schumi
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #13 : Iulie 11, 2012, 12:40:11 »

I-a intrat cuiva in memorie solutia care foloseste trie?
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #14 : Iulie 11, 2012, 12:43:01 »

Nu. Solutia asta nu ia punctaj maxim.
Memorat
Schumi
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #15 : Iulie 11, 2012, 13:16:29 »

Multumesc  Very Happy Am bagat solutia cu sortare si a mers.
Memorat
Magnvs
Strain


Karma: 56
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #16 : Februarie 11, 2013, 21:06:06 »

vedeti ca pe pagina http://infoarena.ro/problema/dictree la "scorul tau" arata tot timpul n/a.
Memorat
superman_01
Client obisnuit
**

Karma: 14
Deconectat Deconectat

Mesaje: 52



Vezi Profilul
« Răspunde #17 : Martie 29, 2013, 20:33:37 »

tot ma chinui la problema asta si nu imi dau seama ce gresesc(iau Incorect pe un test) +2TLE...ma poate ajuta cineva sa cu o optimizare?
Multumesc anticipat!
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #18 : Martie 29, 2013, 22:40:07 »

Citeste sirul intreg, nu caracter cu caracter.
Memorat
superman_01
Client obisnuit
**

Karma: 14
Deconectat Deconectat

Mesaje: 52



Vezi Profilul
« Răspunde #19 : Martie 30, 2013, 00:04:23 »

pai il citesc linie cu linie. Cum ar trebui sa citesc ca un sir intreg ? Very Happy
« Ultima modificare: Martie 30, 2013, 00:20:59 de către Avramescu Cristian » Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #20 : Martie 30, 2013, 09:03:06 »

Scuze, nu am fost atent ca c este un sir de caractere Smile.

Memorat
superman_01
Client obisnuit
**

Karma: 14
Deconectat Deconectat

Mesaje: 52



Vezi Profilul
« Răspunde #21 : Martie 30, 2013, 09:14:40 »

si al idee de optimizare  Smile ?Eu ma gandeam sa tin minte indicii si sortez indicii dar nu stiu cum sa sortez indicii tinand cont ca ar trebui sa compar 2 string-uri.Am incercat si cum zice mai sus Cotizo,dar nu mi-a mers.

L.E. mi-a iesit pana la urma.Uitam sa pun niste conditii in while Very Happy
« Ultima modificare: Martie 30, 2013, 09:34:37 de către Avramescu Cristian » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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