Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 1020 Submatrix  (Citit de 5513 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« : Aprilie 13, 2010, 15:35:26 »

Aici puteți discuta despre problema Submatrix.

Problema a fost adăugată de Andrei Antonescu. Thumb up
Memorat

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

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #1 : Aprilie 13, 2010, 17:28:07 »

Elementele matricii  intre ce interval oscileaza ?
Cu aceeasi sursa cu care am luat 100pct la Oni by Net obtin aici 50pct...
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #2 : Aprilie 13, 2010, 17:33:07 »

Testele de la ONI erau proaste. Nici cele de pe infoarena nu sunt cele mai bune.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #3 : Aprilie 13, 2010, 17:40:44 »

Testele de la ONI erau proaste. Nici cele de pe infoarena nu sunt cele mai bune.
Ok, dar elementele din matrice sunt <= 100 sau  is < ( 2^31 )-1 ?
Memorat
andrei-alpha
Client obisnuit
**

Karma: 103
Deconectat Deconectat

Mesaje: 91



Vezi Profilul
« Răspunde #4 : Aprilie 13, 2010, 17:52:33 »

Am completat in enunt.
Memorat
Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #5 : Aprilie 13, 2010, 21:08:49 »

Stiti cumva cum pot face rost de sursele mele de la Nationala?
Am uitat sa mi le i-au pe stik. pe cele de la ONI.  Thumb up Banana
Memorat
Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #6 : Aprilie 13, 2010, 21:28:43 »

sursa de 0 la ONI
http://infoarena.ro/job_detail/442165  Thumb down Thumb down
prea penal Neutral, mi sa spus ca a iesit din memorie pe toate testele
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #7 : Aprilie 13, 2010, 21:32:09 »

Asta pentru că declari prea multă memorie.
InfoArena îți permite să declari mai multă memorie, și primești MLE doar dacă accesezi mai multă decât ai voie. La ONI nu îți este permis să declari mai multă memorie decât ai voie.
Memorat
Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #8 : Aprilie 13, 2010, 21:33:39 »

e bine de stiut SmileThumb up
Memorat
cr1st18
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #9 : Februarie 02, 2011, 15:16:52 »

la problema aceasta care este complexitatea dorita ? Think
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #10 : Februarie 02, 2011, 15:22:59 »

Complexitatea oficiala este O(N3)
Memorat
flaviusc11
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #11 : Martie 25, 2011, 14:43:54 »

Pe testele oficiale programul meu ia 30 de puncte. De ce aici iau 0 puncte?
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #12 : Martie 25, 2011, 16:04:50 »

Pt ca testele oficiale erau busite. Aici sunt alte teste.
Memorat
andrei-alpha
Client obisnuit
**

Karma: 103
Deconectat Deconectat

Mesaje: 91



Vezi Profilul
« Răspunde #13 : Martie 25, 2011, 16:05:57 »

Tu iei kbs pe toate testele pentru ca iesi din memoria alocata.
Memorat
flaviusc11
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #14 : Martie 25, 2011, 16:14:57 »

Ok...dar totusi cum sa ies din memoria alocata, care este de 16 MB, daca am declarat 2 matrici [301][301] si 2 vectori de 9000 componente? astea nu ocupa mai mult de 1,5 MB.... apropo pe testele oficiale valorile matricei erau mici, aici sunt mai mari de 9000?
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #15 : Martie 25, 2011, 16:41:54 »

Ok...dar totusi cum sa ies din memoria alocata, care este de 16 MB, daca am declarat 2 matrici [301][301] si 2 vectori de 9000 componente? astea nu ocupa mai mult de 1,5 MB.... apropo pe testele oficiale valorile matricei erau mici, aici sunt mai mari de 9000?

Dacă ai citi cu atenție enunțul, ai putea observa următoarea restricție:
Citat
Numerele din fişierul de intrare se vor incadra pe 32 de biţi cu semn.
Memorat
flaviusc11
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #16 : Martie 25, 2011, 17:48:34 »


Dacă ai citi cu atenție enunțul, ai putea observa următoarea restricție:
Citat
Numerele din fişierul de intrare se vor incadra pe 32 de biţi cu semn.

      Am citit enuntul cu atentie, dar nu stiam ce inseamna ca datele se vor incadra pe 32 de biti cu semn. Intre timp m-am documentat. Cred ca din cauza asta luam 0 puncte(pe testele oficiale valorile matricei nu erau mai mari de 100, in schimb aici datele sunt de tip int, adica pana la 2147483647).
      Oricum, multumesc tuturor pentru raspunsuri. M-am luminat putin.
« Ultima modificare: Martie 26, 2011, 13:46:34 de către Condrea Flavius » Memorat
flaviusc11
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #17 : Februarie 28, 2012, 18:28:01 »

Astazi am revenit asupra acestei probleme si am incercat sa folosesc clasa set. Dar nu inteleg de ce nu da rezultatul corect.
Cod:
#include<cstdio>
#include<set>
using namespace std;
int n,m,k,lmax;
int a[310][310];
void citire()
{
freopen("submatrix.in","r",stdin);
scanf("%d%d%d",&n,&m,&k);
int i,j;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
scanf("%d",&a[i][j]);
}
void calculez()
{
set<int>det;
int i,j,l,q,r,dif=0,x;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
 {
     l=0;
     do
     {
         for(q=i;q<=i+l&&q<=n;++q)
            x=a[j+l][q], det.insert(x);
         for(r=j;r<=j+l&&r<=m;++r)
                             x=a[i+l][r],det.insert(x);
                          dif=det.size();
                          if(dif<=k && l>lmax)
                               lmax=l;
                          ++l;
     }
     while((l<n&&l<m) &&(dif<=k));
     det.clear();
 }
    freopen("submatrix.out","w",stdout);
    printf("%d\n",lmax+1);
}
int main()
{
citire();
calculez();
return 0;
}
E bun rationamentul?
Memorat
tudorgalatan
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« Răspunde #18 : Octombrie 28, 2016, 11:26:27 »

De ce am KBS 11 pe toate testele? Nu observ.
Cod:
int matrix[310][310];
int ve[1000002];

int main ()
{
    for (i=1; i<=N; i++)
        for (j=1; j<=M; j++)
        {
            k = i;
            l = j;
            while (k<=N && l<=M)
            {
                sol2 = 0;
                for (u=1; u<=1000000; u++)
                    ve[u] = 0;
                for (u=i; u<=k; u++)
                    for (v=j; v<=l; v++)
                    {
                        ve[matrix[u][v]]++;
                        w++;
                    }
                for (u=1; u<=1000000; u++)
                    if (ve[u] > 0)
                        sol2++;
                sol1 = k-i+1;
                if (sol2 <= K && sol1 > sol)
                    sol = sol1;
                k++;
                l++;
            }
        }
}
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #19 : Octombrie 28, 2016, 14:03:29 »

Citește topicul înainte să postezi, poate au avut și alții aceeași nelămurire  Smile.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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