Mam oto taka macierz:
| 1 0 1 0 |
| 0 0 0 1 |
| 1 1 0 0 |
| 0 0 1 1 |
Jest ona zapisana jako:
typedef std::vector<int> mxrow;
typedef std::vector<mxrow> matrix;
Co nalezy wykonac, aby koncowa macierz wygladala nastepujaco:
| 1 0 0 0 |
| 0 0 0 1 |
| 0 1 0 0 |
| 0 0 1 0 |
Czyli, jak widac w kazdym wierszu i w kazdej kolumniej jest tylko
jedna jedynka
Dzieki
Pozdrawiam
> Mam oto taka macierz:
>
> | 1 0 1 0 |
> | 0 0 0 1 |
> | 1 1 0 0 |
> | 0 0 1 1 |
>
[..]
> Co nalezy wykonac, aby koncowa macierz wygladala nastepujaco:
>
> | 1 0 0 0 |
> | 0 0 0 1 |
> | 0 1 0 0 |
> | 0 0 1 0 |
>
> Czyli, jak widac w kazdym wierszu i w kazdej kolumniej jest tylko
> jedna jedynka
>
Należy usunąć zbędne jedynki.
Pozdrawiam,
Wit Jakuczun
Jak je usunac ? nie chodzi mi o implementacje tylko algorytm.
Np. usowanie pierwszej lepszej jedynki i zerowanie kolejnych nie daje
oczekiwanych wynikow, jak rowniez, zapamietywanie wiersza/kolumny
gdzie juz usunieto jedynke. Sprawdzanie kazdego wiersza i kolumny
konkretnego elementu nie dziala w kazdej sytuacji.
Pozdrawiam
a jesli np. nie ma nigdzie wiersza/kolumny z jedna jedynka wybieram
losowy wiersz/kolumne i zostawiam tylko jedna jedynek reszte zeruje :]
Jak narazie dziala na kazdym przykladzie :D
Dzieki
Pozdrawiam
Z tego co rozumiem, to najlepiej wyzerować wszystko i wstawiać w n-tym
wierszu w n-tej kolumnie.
JD
Na dole masz opis wersji dla wież.
Pozdrawiam,
Wit Jakuczun
Te wartosci ktore sa juz zerami takowymi pozostaja, na tomiast mozna
'zaglowac' jedynkami, ale w taki sposob aby w kazdym wierszu i w
kazdej kolumnie byla tylko jedna jedynka w linii prostej.
Sposob jaki wymyslilem... dziala :)
Pozdrawiam