Pagini: 1 [2] 3   În jos
  Imprimă  
Ajutor Subiect: 086 Luna  (Citit de 26888 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
APOCALYPTO
Nu mai tace
*****

Karma: 3
Deconectat Deconectat

Mesaje: 250



Vezi Profilul
« Răspunde #25 : August 21, 2010, 16:32:33 »

Dar cum se poate afla in o(1) daca firma poate construi respectiva cladire...?
Buna intrebare.
Cum? Confused

Si asta se poate calcula in O(N^3). Smile

Eu am facut in O(N^4) si am luat 100.
Cum poti face in O(N^3)?
Memorat
DanceKriss
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #26 : Martie 13, 2011, 19:27:26 »

O(M*N^4) Huh se genereaza posibilitati de dreptunghiuri din (i,j) in (ii,jj) .... fiind colturi ale dreptunghiului. ??  Brick wall Brick wall Brick wall
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #27 : Martie 13, 2011, 20:01:22 »

In niciun caz, problema se face in O( N3 ) , dar se poate si in O( N4 ), care intra de asemenea in timp.
Memorat
DanceKriss
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #28 : Martie 13, 2011, 20:46:29 »

ar fi bine mai intai sa descopar cum se face corect in o(n^4) ....:d  Brick wall Brick wall Brick wall

Later edit : ce fel de citire ati adoptat cei care ati luat 100 (cu parsare)  Huh
mie imi iese din timp pe prima sursa care am pus-o chiar daca are complexitate n*m + 2500*k(10^5)
// e busita sursa orikm ca idee....

« Ultima modificare: Martie 14, 2011, 00:08:18 de către Gabriel Bitis » Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #29 : Martie 14, 2011, 13:07:48 »

Nu, desi volumul de date nu este mare, nu prea are rost sa se utilizeze citire parsata. Ti-am spus complexitatile optime, nu incerca altceva ca nu prea merge .... doar asa ca sfat.
Memorat
swim406
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #30 : Martie 14, 2011, 23:05:14 »

Daca o tara 1 vrea sa construiasca o cladire de dimensiune 2 3 sa zicem... Poate si in cazul

1 1 1
1 1 1

si in cazul

1 1
1 1
1 1

? Sau numai in primul caz?
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #31 : Martie 15, 2011, 07:50:21 »

Se poate construi in ambele cazuri.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #32 : Mai 28, 2012, 09:26:24 »

Ce are testul 7 ?

Testul 7 are la query-uri dimensiuni mai mari decat matricea
« Ultima modificare: Mai 30, 2012, 11:32:22 de către Petru Trimbitas » Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #33 : August 27, 2012, 22:28:19 »

Rog pe cineva care a rezolvat pe 100 sa se uite peste sursa mea http://infoarena.ro/job_detail/782469 sa-mi spuna ce e gresit sau macar dati-mi un test pe care sa nu mearga ca eu am testat mai mult de o ora si inca nu am dat peste un test care sa-mi dea gresit, dar totusi iau doar 45 cu incorect pe celelalte  Brick wall
Memorat
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #34 : Decembrie 21, 2012, 22:11:53 »

Salutare! Am incercat si eu sa rezolv aceasta problema. Ati putea da un mic hint, va rog Very Happy ?
Memorat
dariusdarius
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #35 : Decembrie 24, 2012, 11:43:09 »

Am o intrebare. Am facut problema cu complexitate O( N^4 + M ) (ia 100), pregenerand o matrice cu d[ i ][ j ] = inaltimea maxima care poate sa o aiba un dreptunghi al firmei i, cu lungimea j ( O(N^4) ). Intrebarea era cum se poate face aceasta pregenerare in O(N^3)?
Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #36 : Decembrie 24, 2012, 12:47:20 »

Ideea pentru n ^ 3 ar fi : dinamica e buna adica dp[ i ][ j ] = inaltimea maxima ce o poate avea o tara de tipul i daca are lungimea j;
si fie h[ i ][ j ] = cat de mult ma pot duce in sus pe coloana j; acum tu te afli la pozitia i,j; ii afli tara si acum presupui cu coltul dreapta jos a dreptunghiului se afla in (i,j); acum fixezi lungimea dreptunghiului; pentru fiecare lungime fixata raspunsul va fi minimul( h[ i ][ k(indicele lungimii) .. j]); si acest minim il actualizezi la fiecare noua lungime.
Memorat
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #37 : Decembrie 27, 2012, 12:18:27 »

Multumesc de ajutor! Indirect, ultimele doua comentarii m-au ajutat foarte mult Very Happy . Am facut o sursa de 45 pct, care insa se incadreaza in timp si memorie. La celelalte teste iau wrong answer. Printre testele care le pic sunt si primele 2. Nu inteleg care este greseala. Ma puteti ajuta, va rog? Am folosit o matrice d, cu semnificatia data de voi ( voi= Salajan Razvan si Marian Darius). d[j]=inaltimea maxima pe care o poate avea un dreptunghi al firmei i, cu lungimea j. Stiu ca nu pot posta o sursa intreaga (nici nu vreau, pentru ca nu vreau mura-n gura) , asa ca o sa postez bucata din main, in care citesc cererile si le analizez:
Cod:
scanf("%d", &nr_requests);
    for(i=1; i<=nr_requests; i++)
    {
        scanf("%d%d%d",&color, &lg2, &lg1);
        if(d[color][1]==0) printf("Tara de provenienta nu are parcele pe luna!");
        else if(lg2<=d[color][lg1] || lg1<=d[color][lg2]) printf("Cererea poate fi satisfacuta!");
        else printf("Cererea nu poate fi satisfacuta!");
        printf("%s","\n");
    }
Ma puteti ajuta va rog? Imi scapa ceva aici, sau trebuie sa mai verfic construirea matricei d. As aprecia mult un raspuns.Very Happy
Memorat
assa98
Strain
*

Karma: -19
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #38 : Decembrie 29, 2012, 14:42:38 »

Salut. Eu am o matrice d[ i ][ j ] unde d[ i ][j]=inaltimea dreptunghiului (de lungime 1) mergand in sus si o matrice r[ i ][j] unde patsrez  inaltimea maxima a unui dreptunghi al tarii i, cu lungimea j .
Totusi iau 40p. Stie cineva ce e gresit?
Memorat
assa98
Strain
*

Karma: -19
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #39 : Decembrie 29, 2012, 14:53:08 »

Ok. nu mai conteaza Brick wall Brick wall Brick wall Brick wall aveam functia de min(a,b) definita gresit...
Memorat
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #40 : August 12, 2013, 20:22:01 »

Primul test al evaluatorului este chiar exemplul problemei? Nu iau primul test si multe altele. Dar ma surprinde ca nu-l iau pe primul
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #41 : August 12, 2013, 22:58:26 »

Testele sunt tot timpul diferite de exemple, asa ca nu e nimic straniu ca exemplele iti merg iar primul test nu  Smile
Apropo, dreptunghiurile pe care se construiesc cladiri au laturile paralele cu marginile hartii sau pot fi si oblice??  Confused
« Ultima modificare: August 15, 2013, 09:34:11 de către catalin » Memorat
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #42 : August 16, 2013, 11:14:37 »

Ma poate ajuta cineva, va rog? Incerc sa maresc punctajul la aceasta problema. Iata cum am gandit eu. Intai creez o matrice auxiliara h, cu h[j]=cat de mult ma pot duce in jos, plecand din coordonata (i,j).

Dupa, contruiesc matricea d, cu d[j]=lungimea maxima a unui dreptunghi de culoare i, cu inaltimea j. Pentru construierea acestei matrici folosesc algoritmul de determinare a dreptunghiului de arie maxima dintr-o histograma.

E buna ideea? M-am complicat folosind problema histogramei?
Memorat
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #43 : August 16, 2013, 12:57:32 »

@Catalin, eu banuiesc ca laturile sunt paralele cu matricea.Cazul cu dreptunghiuri "oblice" mi se pare sub semnul intrebarii. Uite de ce cred asta: daca consideram unitatea de arie egala cu un patratel din matrice, pentru realizarea de dreptunghiuri oblice am avea nevoie de fractiuni de unitate iar asta ar complica putin problema.

Sper ca nu am luat-o pe aratura cu parerea mea Smile)).

Memorat
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #44 : August 18, 2013, 20:41:50 »

Ok, am mai lucrat la problema. Am reusit sa iau 45 de puncte, iar la restul testelor sa obtin doar wrong answer, fara TLE-uri sau "killed by signal". Este ok daca am folosit ideea de la problema determinarii dreptunghiului de arie maxima dintr-o histograma? Sau m-am complicat?
Memorat
horatiu11
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 11



Vezi Profilul
« Răspunde #45 : Ianuarie 02, 2014, 14:34:51 »

Buna!
Nu stiu de ce iau 50 de puncte. Pe restul iau incorect. Construiesc o matrice M[j] in care memorez pt tipul i si lungimea j, inaltimea maxima.
Apoi afisez in functie de datele citite.
Cod:
//horatiu11
# include <cstdio>
# define nmax 53
# define vmax 5003
using namespace std;
int n,m,k,a[nmax][nmax],M[vmax][nmax],type,l1,l2;
int main()
{
    int i,j,l,c,x,y;
    freopen("luna.in","r",stdin);
    freopen("luna.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            scanf("%d",&a[i][j]);
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
        {
            c=j;type=a[i][j];
            while(a[i][c]==type)--c;
            x=j-c;
            l=i;
            while(a[l][j]==type)--l;
            y=i-l;
            if(y>M[type][x])M[type][x]=y;
        }
    scanf("%d",&k);
    for(i=1;i<=k;++i)
    {
        scanf("%d%d%d",&type,&l1,&l2);
        if(M[type][1]==0)printf("Tara de provenienta nu are parcele pe Luna!\n");
        else if(M[type][l1]>=l2 || M[type][l2]>=l1)printf("Cererea poate fi satisfacuta!\n");
        else printf("Cererea nu poate fi satisfacuta!\n");
    }
    return 0;
}


Memorat
chiriacandrei25
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #46 : Ianuarie 07, 2014, 20:42:19 »

horatiu11 :
vezi ca nu te opresti cand incepi deja sa ai elemente diferite pe linia respectiva cand construiesti matricea d.
gen, daca ai linia ta :
11122212211
tu actualizezi solutia pt ultimul 1, penultimul, dar cand dai peste 2 trebuie sa iesi din for, nu sa continui  Thumb up
Memorat
horatiu11
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 11



Vezi Profilul
« Răspunde #47 : Ianuarie 14, 2014, 22:57:47 »

Tu spui ca ar trebui sa trec pe linia urmatoare cand intalnesc o valoare diferita(adica sa parasesc forul cu j pt coloane)?
Poti da un exemplu mai bun sa inteleg ?
Merci Very Happy
Memorat
gedica
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #48 : Martie 26, 2014, 17:08:12 »

Salut....Se uita cineva pe sursa mea de 25pct va rog?   Brick wall Brick wall Brick wall Brick wall Brick wall
Multumesc Very Happy  Applause Applause Applause Applause Applause Applause  Winner 1st place Winner 1st place Winner 1st place Winner 1st place Winner 1st place Winner 1st place
Memorat
japjappedulap
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« Răspunde #49 : Octombrie 07, 2014, 23:31:31 »

Tare interesanta problema asta. Orice test ii dau, pe sursa mea merge, dar iau doar 50 de puncte...
Se uita cineva peste sursa mea?
http://www.infoarena.ro/job_detail/1239005?action=view-source
Memorat
Pagini: 1 [2] 3   În sus
  Imprimă  
 
Schimbă forumul:  

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