Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: 018 Siruri 2-3-monotone  (Citit de 17849 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #25 : Aprilie 13, 2005, 20:29:34 »

Citat din mesajul lui: danburzo
Io zic sa lasam subiectul balta. Oricum sorry ca m-am bagat in povestea asta. Poate ca mai am de invatat... si cand pa prind io ce compexitate are de fapt va scriu wink
Am inceput pe picior gresit oricum  Mr. Green


De ce s-o lasi balta? Mai citeste ce ti s-a explicat, pana la urma vei intelege...  Whistle
Memorat
cristy
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 136



Vezi Profilul
« Răspunde #26 : Iulie 23, 2005, 07:18:02 »

va rog...imi spune-ti care sunt solutiile pentru n=2 si n=3?...nu rezultatele ci...numerele cerute...
Memorat

... lipsa de inspiratie ...
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #27 : Iulie 23, 2005, 09:06:19 »

Pentru n = 2: (1,1), (1,2),(2,1),(2,2) -> 4 moduri
 Pentru n = 3: (1,1,2), (1,1,3), (1,2,2), (1,2,3), (1,3,2), (1,3,3), (2,1,3),(2,2,3),(2,3,3) -> 9 moduri

 ___________________________________________
 Si apropo de complexitate: e O(N) spatiu si O(N) memorie. Ar fi fost O(1) daca  ar fi fost pur si simplu o formula (de genul n^2+5-17*32)... sper ca nu am rascolit prea tare trecutul  Mr. Green Parerea mea...
Memorat
vladcyb1
Vorbaret
****

Karma: 33
Deconectat Deconectat

Mesaje: 166



Vezi Profilul
« Răspunde #28 : August 15, 2005, 15:23:31 »

Ce observatie matematica trebuie ca sa reduc de la N^3 la N^2 complexitatea acestei probleme? Nu prea ma prind... Think
Memorat

Vlad Berteanu
Stilgar
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #29 : Noiembrie 01, 2005, 09:21:25 »

imi poate da cineva linku catre sol de pe campion ca am tot cautat prin toata arhiva si nu am gasit nimik..... Sad  pls
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #30 : Noiembrie 01, 2005, 13:15:46 »

Linkul este http://www.liis.ro/~campion/problems.php?mode=view_round&group_number=2&year=2004&round_number=5 ( gaseai arhiva din 2004, runda a 5-a, grupa mijlocie...)
Memorat
ditzone
Vizitator
« Răspunde #31 : Noiembrie 03, 2005, 14:52:26 »

La campion gasesti din cate tin eu minte o solutie de complexitate O(n^3)... ar fi de preferat sa se incerce gasirea unei solutii in n^2 .. nu doar crearea unor constante folosind programul in n^3 de pe siteul campion. ( aici fiind limitele un pic mai mari )
Memorat
nivan
Vizitator
« Răspunde #32 : Noiembrie 09, 2005, 20:01:11 »

Imi zice shi mie cineva cum de iau doar 40 puncte cu urmatoarul program care foloseste o recurenta:

Cod:

#include <stdio.h>

long i,j,k,n,mod=1000000,f[1001][1001];

int main()
{
 FILE *fil=fopen("sir23.in","r");
 fscanf(fil,"%ld",&n);
 fclose(fil);

 for (i=1;i<=n;i++)
    {
     f[i][1]=i;
     f[i][2]=i*i;
     f[i][2*i]=1;
    }
 f[1][2]=1;
 f[2][3]=2;
 for (i=3;i<=n;i++)
    for (j=3;j<2*i;j++)
    for (k=1;k<i;k++)
       f[i][j]=(f[i][j]+f[i-k][j-1]+k*f[i-k][j-2]) % mod;

 FILE *g=fopen("sir23.out","w");
 fprintf(g,"%ld",f[n][n]);
 fclose(g);

 return 0;
}


e ciudat mai ales ca eu nu vad ce are de nu merge.... pare perfect ----> Doar ca ia 40 puncte cu TLE pe restul !!!!!!!!  Brick wall   Exista ceva mai rapid ca O(n^3)  ca eu nu vad?Huh?? Question
Memorat
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #33 : Noiembrie 09, 2005, 20:54:27 »

1. Daca nu vezi, nu inseamna ca nu exista
2. Puteai sa vezi cu un calcul simplu sau cu un program oarecare ca un algoritm O(n^3) nu se incadreaza in 1 secunda cu n=1000 mai pe nici un procesor
3. Nu are rost sa postezi cod, citeste Regulamentul
4. Daca citeai ce s-a mai scris mai sus , vedeai ca exista un algoritm O(n^2)
5. Relaxeaza-te si foloseste moderat "!" si "?", cat si smiley-urile

 Ok
Memorat
nivan
Vizitator
« Răspunde #34 : Noiembrie 09, 2005, 21:14:00 »

1. Am inteles
  2. Nu am citit mai sus, deoarece cum nu mi-a mers problema am intrat si am postat
  3. Stiu k e o tampenie ca nu am facut calculul ca nu merge O(n^3)
  4. O sa incerc sa nu mai folosesc !

Ah... shi uitasem sunt agitat de la cola (daia pun multe ! ? shi smile-uri)

[Editat de bogdan2412: Nu mai postati de doua ori consecutiv, editati-va posturile anterioare]
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #35 : Decembrie 05, 2005, 21:10:36 »

Poate sa-mi spuna si mie cineva cat da pentru n=17 si n=28? Multumesc mult.
Memorat

Am zis Mr. Green
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #36 : Decembrie 05, 2005, 21:22:53 »

Citat
Poate sa-mi spuna si mie cineva cat da pentru n=17 si n=28? Multumesc mult.


473176 si 732667
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
ghitza_2000
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #37 : Octombrie 27, 2008, 16:37:20 »

Imi spune si mie cineva unde gasesc solutia de pe campion? ca imi apare arhiva goala. sau daca nu sa imi spuna si mie cineva cum as gasi o solutie de O(n^3)? O sa gasesc eu apoi calculele matematice necesare sa o fac in O(n^2).... Very Happy
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #38 : Iulie 21, 2009, 17:45:09 »

Imi puteti da un hint cum sa fac dinamica, ca am incercat sa tin o matrice A[ i ][ j ] = numarul de posibilitati de a pune elementul i pe pozitia j, insa recurenta nu prea imi iese si vreau sa stiu daca asta este calea cea buna Smile
Memorat
vladtarniceru
De-al casei
***

Karma: 81
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #39 : Decembrie 13, 2009, 17:59:22 »

nivan,uite de ce iei 40 de puncte
Test Timp executie Memorie folosita Mesaj Punctaj/test
1 0ms 8kb Corect! 10
2 20ms 540kb Corect! 10
3 0ms 12kb Corect! 10
4 0ms 12kb Corect! 10
5 1052ms 2256kb Time limit exceeded. 0
6 1052ms 2720kb Time limit exceeded. 0
7 1052ms 2540kb Time limit exceeded. 0
8 1052ms 2848kb Time limit exceeded. 0
9 1052ms 3788kb Time limit exceeded. 0
10 1052ms 3120kb Time limit exceeded. 0
Punctaj total 40
sper ca nu te superi,am trimis sursa ta Smile
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #40 : Decembrie 13, 2009, 20:09:53 »

Acel post era de acum 4 ani. Uita-te si tu mai atent inainte sa postezi ceva. Si incearca de acuma sa rezolvi singur problemele, nu are sens sa trimiti sursele altora. Nu castigi nimic daca ai mai multe puncte in arhiva.
Memorat
Cmaster
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #41 : Decembrie 31, 2010, 23:31:41 »

se poate ca o metoda backtracking sa se incadreze in timp?
//probabil ca nu!ca deja de la n=30 moare programul
Memorat
cr1st18
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #42 : Februarie 26, 2011, 18:13:16 »

rezolvarea in O(N^2) consta in a declara un vector s cu semnificatia : s[ i ] = nr de siruri de lungime i cu elemente din multimea {1,..,i} ??

Later edit: Imi poate da careva un indiciu pt rezolvarea in O(n^2) ?

eu am rezolvat problema folosind o matrice opt(i,j) = nr de siruri 2-3 monotone de lungime i cu valori din multimea {1,2,...,j}, complexitate O(n^3). M-am mai gandit si in felul urmator: opt(i,j) = nr de siruri 2-3 monotone de lungime i cu ultimul element j ...
oare asa pot ajunge la O(n^2) ?

Editat de moderator : Nu mai posta de mai multe ori consecutiv. Editeaza-ti posturile anterioare.
« Ultima modificare: August 10, 2011, 07:47:55 de către Gabriel Bitis » Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #43 : August 09, 2011, 18:12:22 »

O idee pe care am oferit-o o data ar fi o dinamicain 3 dimensiuni d[ i ][j][k] pentru siruri de lungime i cu valori intre 1 si j si cu ultimele elemente avand o ordine k. Iti las tie problema gasirii numarului de elemente pe care trebuie sa le considiri si recurenta dinamicii. Rezolvarea asta ar fi cam O(N^2) cu o constanta maricica dar accectabila.
Memorat
dodgerblue
Strain


Karma: -4
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #44 : Octombrie 16, 2014, 16:40:25 »

Salut,

Ma tot chinui la problema asta si nu ii dau de cap. Insa am cateva idei, cel putin legat de partea de "organizare".

Ok, in principal ma gandeam sa tin o matrice S, unde S[ i ][ j ] - numarul de siruri de dimensiune i cu elemente de la 1 .. j.

Acum legat de partea de recurenta - o pot lua in 2 directii:
1. sa incerc sa calculez S[ i+1 ][ j ] - practic sa "redistribui" numerele de la 1 la j tinand cont ca am o pozitie in plus
  - de la o valoare a lui i incolo, pt fiecare j, i >> j (sa zicem), S[ i ][ j ] = 0, intrucat nu exista suficiente numere care sa satisfaca relatia de monotonie
2. sa incerc sa calculez S[ i ][ j+1 ] - practic sa mai adaug o valoare in lista de valori cu care pot construi sirurile

As incerca sa ma gandesc mai departe pe varianta 2, insa nu reusesc sa "controlez" in niciun fel valorile retinute pana in punctul S[ i ][ j ], astfel incat sa pot construi recurenta fara sa adun chestii de 2 ori, sa omit cazuri, etc.

M-ar ajuta orice fel de sugestie legata de ce informatie in plus ar mai trebui sa contina matricea de programare dinamica, ce ar mai fi relevant. De asemenea, orice problema aseamanatoare, sau principiu de programare dinamica, care sa imi dea idei si din care sa pot invata. M-am blocat la problema asta acum ceva timp, acum am reluat-o si sunt in acelasi punct.

Multumesc si o zi faina!
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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