•astronomy
|
 |
« : Aprilie 05, 2009, 11:25:28 » |
|
Aici puteti discuta despre problema Palindrom.
|
|
|
Memorat
|
|
|
|
•florin_marius90
Strain
Karma: -15
Deconectat
Mesaje: 17
|
 |
« Răspunde #1 : Aprilie 05, 2009, 12:17:37 » |
|
salut! vreau si eu sa stiu care ar fii solutia optima la aceasta problema multumesc
|
|
|
Memorat
|
|
|
|
•gabor_oliviu1991
|
 |
« Răspunde #2 : Aprilie 05, 2009, 12:22:47 » |
|
O(N^2) cel mai nefavorabil caz. Mai poti optimiza totusi.
PS: Vor aparea solutiile oficiale?
|
|
|
Memorat
|
|
|
|
•florin_marius90
Strain
Karma: -15
Deconectat
Mesaje: 17
|
 |
« Răspunde #3 : Aprilie 05, 2009, 12:28:07 » |
|
imi deasheshte cu 0.5 secunde... iau decat 5 puncte plus ca la al 2 lea test imi apare ' incorect' , in rest depasheste tipul ......oare ce oi fii scapat din vedere....  PS: cum ajung la arhiva de probleme de bac ?
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #4 : Aprilie 05, 2009, 12:32:54 » |
|
La Palindrom2 intra O(N 2). Aici ai nevoie de o solutie in O(N)
|
|
|
Memorat
|
|
|
|
•gabor_oliviu1991
|
 |
« Răspunde #5 : Aprilie 05, 2009, 12:43:40 » |
|
Ah da scuze. Si totusi solutia in O(n)? Un hint ceva... 
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #6 : Aprilie 05, 2009, 12:50:27 » |
|
Pai eu am aflat lungimea celui mai lung palindrom care contine ultimu caracter din sirul dat, iar apoi am adaugat la spate primele (N - acea lungime) caractere din sir
|
|
|
Memorat
|
|
|
|
•florin_marius90
Strain
Karma: -15
Deconectat
Mesaje: 17
|
 |
« Răspunde #7 : Aprilie 05, 2009, 12:55:40 » |
|
la fel am facut si eu si totushi nu se incadreaza in timp .. depasheste cu 0.05..... am facut programu in pascal . o fii de la pascal???
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« Răspunde #8 : Aprilie 05, 2009, 13:08:36 » |
|
depasheste cu 0.05.....
S-a mai discutat asta: programul vostru este oprit cu 0.05s dupa ce ati depasit limita. Daca ar fi fost lasat sa ruleze pana isi termina treaba, e posibil sa fi sarit cu mai mult de limita. Ganditi-va ce ar fi daca ar fi lasat sa ruleze pana la capat un program care intra in ciclu infinit 
|
|
|
Memorat
|
|
|
|
•gh09
Strain
Karma: -2
Deconectat
Mesaje: 38
|
 |
« Răspunde #9 : Aprilie 06, 2009, 11:53:06 » |
|
De ce s-a scos problema din arhiva?
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #10 : Aprilie 07, 2009, 00:07:31 » |
|
cand apar solutiile oficiale? sau macar spuneti-mi se poate folosi kmp la problema asta a.i. sa scot 100?
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« Răspunde #11 : Aprilie 07, 2009, 06:24:11 » |
|
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #12 : Aprilie 07, 2009, 13:43:44 » |
|
iau 55 pct cu incorect pe restul. if(q == n-i){ if(q > l){l = q; unu = 0; doua = 1;} q = pi[q]; } if(q == n-i+1){ if(q > l){l = q; unu = 1; doua = 0;} q = pi[q]; }
in KMP pun doar acele doua conditii, si ma folosesc de varibila l pentru a afisa palindromul. variabilele unu si doua reprezinte nr de varfuri. Pe exemplele mele merge, mai sunt conditii?
|
|
« Ultima modificare: Aprilie 07, 2009, 15:50:59 de către Brestin Sebastian »
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #13 : Iunie 11, 2009, 20:55:15 » |
|
Testul 8 a fost înlocuit şi am reevaluat sursele.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•mening12001
Strain
Karma: -13
Deconectat
Mesaje: 14
|
 |
« Răspunde #14 : Martie 21, 2010, 22:01:11 » |
|
#include<iostream.h> #include<fstream.h> #include<string.h> int main() {char a[200001],b,c[200001]; long i,k=0; ifstream f("palindrom.in"); ofstream g("palindrom.out"); f.getline(a,200000); i=strlen(a)-1; b=a[i-1]; while(i!=0) {if(a[i]!=b) i=0; else {k++; i--;} } if(k==0) {strcpy(c,a); strcpy(a+strlen(a)-1,a+strlen(a)); strcat(c,strrev(a)); g<<c;}
else {strcpy(c,a); strcpy(c+strlen(c)-k+1,c+strlen(c)); strcpy(a+strlen(a)-k,a+strlen(a)); strcat(c,strrev(a)); g<<c; }
return 0;}
care este problematica totusi...? dc apare aceasta inexplicabila eroare? va multumesc Editat de admin: Foloseste tagul "code" cand postezi surse.
|
|
« Ultima modificare: Martie 21, 2010, 22:13:04 de către Andrei Grigorean »
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #15 : Martie 22, 2010, 12:16:38 » |
|
Din cate stiu si din ceea ce am citit pe net functia strrev nu este in bibliotecile originale , adica doar in limbajele care au functii "optionale", cum ar fi Code::Blocs, dar in MinGW Developer Studio , adica si pe evaluatorul infoarena, nu exista. De accea iti sugerez sa implementezi functia de mana  [LE] Am gasit un exemplu de reverse, o sa-l postez, sper sa te ajute  #include <iostream> #include <cstring> using namespace std; int main() { char str[] = "this is a test"; char *start, *end; int len; char t; cout << "Original: " << str << "\n"; len = strlen(str); start = str; end = &str[len-1]; while(start < end) { // swap chars t = *start; *start = *end; *end = t; // advance pointers start++; end--; } cout << "Reversed: " << str << "\n"; return 0; }
|
|
« Ultima modificare: Martie 22, 2010, 12:35:58 de către Simoiu Robert »
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #16 : Martie 22, 2010, 16:57:30 » |
|
Din cate stiu si din ceea ce am citit pe net functia strrev nu este in bibliotecile originale , adica doar in limbajele care au functii "optionale", cum ar fi Code::Blocs, dar in MinGW Developer Studio , adica si pe evaluatorul infoarena, nu exista. De accea iti sugerez sa implementezi functia de mana [LE] Am gasit un exemplu de reverse, o sa-l postez, sper sa te ajute
De cand sunt Codeblocks si Mingw Studio limbaje ?
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #17 : Martie 22, 2010, 17:02:44 » |
|
Am zis limbaje si am pus "optionale", deci eu cred ca se intelege ca e IDE ... 
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #18 : Martie 22, 2010, 17:11:33 » |
|
adica doar in limbajele care au functii "optionale", cum ar fi Code::Blocs, dar in MinGW Developer Studio
Code::Blocks si MinGW nu contin nici o functie optionala, asta depinde de compilatorul si versiunea( de compilator ) folosita. strrev este depreciated, la fel ca si itoa. Pentru strrev exista reverse din STL #include <algorithm> //s-sirul n=strlen(s); reverse( s, s+n ); //reverse actioneaza pe intervalul [ begin, last )
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #19 : Martie 22, 2010, 17:14:40 » |
|
SpiderMan, tu chiar nu vrei sa intelegi, sau te prefaci?
E a nu stiu cata oara cand trebuie sa atrag atentia pe forum ca MinGW Developer Studio si Code::Blocks nu pot compila/rula surse.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•SpiderMan
|
 |
« Răspunde #20 : Martie 22, 2010, 17:39:26 » |
|
SpiderMan, tu chiar nu vrei sa intelegi, sau te prefaci?
E a nu stiu cata oara cand trebuie sa atrag atentia pe forum ca MinGW Developer Studio si Code::Blocks nu pot compila/rula surse.
Ce vrei sa zici cu asta ? Adica da, nu pot compila singure, dar au incorporate un program care face asta ....
|
|
« Ultima modificare: Martie 22, 2010, 18:02:31 de către Simoiu Robert »
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #21 : Martie 22, 2010, 19:29:41 » |
|
Ce vrei sa zici cu asta ? Adica da, nu pot compila singure, dar au incorporate un program care face asta ....
Vrea sa zica ca MinGW/ Code::Blocks sunt niste unelte care te ajuta sa redactezi, compilezi sau sa faci un debug intr-un mod cat mai simplu si placut. Cel care face toata munca din spatele acestor operatiuni este compilatorul , "MinGW/ Code::Blocks sunt doar interfetele"
|
|
|
Memorat
|
|
|
|
•spatarel
Strain
Karma: 31
Deconectat
Mesaje: 37
|
 |
« Răspunde #22 : Decembrie 03, 2011, 21:05:16 » |
|
Vă rog să adăugați și testul:
acdbdbacabdca
cu raspunsul corect:
acdbdbacabdcacdbacabdbdca
deoarece am observat că există o sursă (643532) care a obținut 100p, deși pică acest test.
Vă mulțumesc.
|
|
|
Memorat
|
Atat am avut de spus
|
|
|
•BoSs_De_BosS
Strain
Karma: 25
Deconectat
Mesaje: 2
|
 |
« Răspunde #23 : Martie 16, 2012, 19:22:48 » |
|
.... la problema asta iei 100 si daca faci numa pentru palindroame impare  trebuie modificat ori enuntul ori testele 
|
|
|
Memorat
|
|
|
|
•repp4radu
|
 |
« Răspunde #24 : Ianuarie 24, 2013, 21:14:11 » |
|
Daca a rezolvat cineva problema asta cu algoritmul lui Manacher, as avea nevoie de putin ajutor. Iau doar 25 de puncte cu TLE, desi teoretic ar trebui sa intru lejer in limita de timp. LE Uitam sa updatez centrul celui mai extins palindrom  Problem solved thanks to Tudor Tiplea 
|
|
« Ultima modificare: Ianuarie 25, 2013, 15:19:23 de către Szasz Radu »
|
Memorat
|
|
|
|
|