infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Stratulat Alexandru din Martie 12, 2013, 17:55:04



Titlul: Submatrice
Scris de: Stratulat Alexandru din Martie 12, 2013, 17:55:04
Am o matrice de n*m si trebuie sa gasesc toate submatricile a caror suma este divizibila cu 3. Eu fac in O(n^3), fixandu-mi 2 linii si calculand toate submatricile dintre acele linii si verificand daca suma respectiva e divizibila cu 3.
Imi da raspuns aproximativ, insa stiu ca imi scapa ceva marunt  ](*,)
Cod:
for(register int i=1;i<=n;++i)
        for(register int j=i;j<=n;++j){

         S = 0;
            for(register int C=1;C<=m;++C){
                for(register int ii=i;ii<=j;++ii)
                    B[C]+=M[ii][C];

              S+=B[C];
                    if(S%3 == 0)
                        nr++;
}

        memset(B,0,sizeof(B));
        }