Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 836 Palindrom  (Citit de 6743 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« : Aprilie 05, 2009, 11:25:28 »

Aici puteti discuta despre problema Palindrom.
Memorat
florin_marius90
Strain


Karma: -15
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« 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 Deconectat

Mesaje: 17



Vezi Profilul
« 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....Huh
 PS: cum ajung la arhiva de probleme de bac ?
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #4 : Aprilie 05, 2009, 12:32:54 »

La Palindrom2 intra O(N2).
Aici ai nevoie de o solutie in O(N)
Memorat
gabor_oliviu1991
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« Răspunde #5 : Aprilie 05, 2009, 12:43:40 »

Ah da scuze. Si totusi solutia in O(n)? Un hint ceva... Smile
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« 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 Deconectat

Mesaje: 17



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« 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 Wink
Memorat
gh09
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 38



Vezi Profilul
« Răspunde #9 : Aprilie 06, 2009, 11:53:06 »

De ce s-a scos problema din arhiva?
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #11 : Aprilie 07, 2009, 06:24:11 »

http://infoarena.ro/grigore-moisil-2009/solutii#palindrom
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #12 : Aprilie 07, 2009, 13:43:44 »

iau 55 pct cu incorect pe restul.
Cod:
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
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« 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 Deconectat

Mesaje: 14



Vezi Profilul
« Răspunde #14 : Martie 21, 2010, 22:01:11 »

Cod:
#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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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  Smile
[LE] Am gasit un exemplu de reverse, o sa-l postez, sper sa te ajute Smile
Cod:
#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
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #16 : Martie 22, 2010, 16:57:30 »

Citat
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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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 ...  Surprised
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« 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
Cod:
#include <algorithm> 
//s-sirul
n=strlen(s);
reverse( s, s+n ); //reverse actioneaza pe intervalul [ begin, last )
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« 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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« 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 Deconectat

Mesaje: 37



Vezi Profilul WWW
« 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 Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #23 : Martie 16, 2012, 19:22:48 »

.... la problema asta iei 100 si daca faci numa pentru palindroame impare  Whistle
trebuie modificat ori enuntul ori testele  Smile
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« 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  Brick wall

Problem solved thanks to Tudor Tiplea  Dancing
« Ultima modificare: Ianuarie 25, 2013, 15:19:23 de către Szasz Radu » Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

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