Pagini recente » Cod sursa (job #1070966) | Clasament 08022000 | Soluţii ONIS 2015, Runda 3 | Cod sursa (job #1441844) | Diferente pentru preoni-2008/runda-2/solutii/grozavesti intre reviziile 2 si 3
Nu exista diferente intre titluri.
Diferente intre continut:
h2(#grozavesti). 'Grozavesti':problema/grozavesti
Observam ca daca avem la dispozitie o matrice $NxN$ putem aduce orice element pe pozitia $(1,1)$ in cel mult doua interschimbari (una pentru linii si una pentru coloane). Astfel pentru fiecare $x$ de la $1$ la $N$ vom plasa pe pozitia $(x,x)$ cel mai mic element din submatricea avand coltul stanga sus $(x,x)$.
Observam ca daca avem la dispozitie o matrice $NxN$ putem aduce orice element pe pozitia $(1,1)$ in cel mult doua interschimbari (una pentru linii si una pentru coloane). Daca elementul minim se afla pe pozitia $(i,j)$ interschimbam linia $i$ si coloana $j$ cu linia $1$ si coloana $1$. Astfel pentru fiecare $x$ de la $1$ la $N$ vom plasa pe pozitia $(x,x)$ cel mai mic element din submatricea avand coltul stanga sus $(x,x)$. Acum problema se reduce la aflarea elementului minim din submatricea avand coltul stanga sus $(x,x)$. Se poate implementa direct acest pas iterand prin toate valorile posibile si se obtine un algoritm de complexitate $O(N^3^)$. Exista un algoritm mai bun, de complexitate $O(N^2^logN)$ folosind un max-heap in care sunt introduse elementele din matrice, la fiecare interschimbare de linii sau coloane fiind actualizate elementele din max-heap.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.