Załóżmy, że pewna figurka na kwadratowym papierze. Boki postaci idą prosto na linie kwadratowego papieru. Figura może mieć dowolny (nawet wypukły) kształt. Jak znaleźć maksymalną liczbę kostek domina (1x2 prostokątny), które można umieścić na tej figurze. Niedozwolone jest umieszczanie domina nad innym. Dozwolone jest umieszczanie domina tylko w taki sposób, gdy jego boki spoczywają dokładnie na liniach kwadratowego papieru.maksymalna liczba kostek domina może być umieszczona wewnątrz figury
Odpowiedz
Wygląda jak maximum cardinality matching problem in a bipartite graph. Kwadraty są wierzchołkami, a kostki domina są krawędziami, które należą do dopasowania.
Aby zobaczyć, że wykres jest dwustronny, wyobraź sobie kwadraty malowane szachownicą. Czarne jedyne sąsiadujące białe i na odwrót.
+1 Piękny. Skopię się za to, że tego nie widziałem. :-) – templatetypedef
wow, piękne! wydaje się być poprawne! –
Czy to rozwiązanie można uogólnić? Co jeśli domeny są na przykład 3x1 lub 4x2? – templatetypedef
można sklasyfikować kwadraty przez liczbę wolnych sąsiednich kwadratów jako typ 0, 1, 2, 3 lub 4.
Uważam, że powinno działać:
znaleźć typ 1 kwadrat, umieścić tam domina w jedyny możliwy sposób i powtórzyć
innego, znaleźć wolny narożniku utworzonym przez dwie przyległe typu 2 i 3 kwadraty, tam miejsce domina i przejdź do 1
indziej umieścić domino w każdym typie 2 placu i iść do 1
skończysz
Tak, to jest zasadniczo to, co robi najprostszy algorytm maksymalnego dopasowania. –
- 1. Maksymalna liczba równoczesnych HttpWebRequests
- 2. Maksymalna liczba argumentów Bash! = Maksymalna liczba argumentów cp?
- 3. Maksymalna liczba wątków ThreadPool
- 4. Maksymalna liczba prób wysłania
- 5. Parametry funkcji maksymalna liczba
- 6. Maksymalna liczba instrukcji GLSL
- 7. Maksymalna liczba znaków dla konstruktora stringów może pomieścić
- 8. Maksymalna liczba połączeń w ChannelFactory
- 9. Funkcje PHP - Maksymalna liczba argumentów
- 10. SQL DELETE - Maksymalna liczba wierszy
- 11. Jenkins - maksymalna liczba równoczesnych zadań
- 12. Maksymalna liczba procesów zarejestrowanych globalnie
- 13. Czy td może być wewnątrz td
- 14. Czy tablica może być za duża?
- 15. Maksymalna liczba instancji modułu roboczego Apache
- 16. Maksymalna liczba obiektów w obszarze roboczym
- 17. Maksymalna liczba zapytań SQL na stronę
- 18. . Maksymalna liczba równoczesnych wątków z timerem
- 19. SELECT id HAVING maksymalna liczba id
- 20. Maksymalna liczba połączeń na hoście z twisted.web.client.Agent
- 21. Jaka jest maksymalna liczba plików na słoik?
- 22. Maksymalna liczba wymiarów w tablicy Javy
- 23. Maksymalna liczba zmiennych lokalnych w metodzie Java
- 24. Jaka jest maksymalna liczba ponumerowanych wyrażeń regularnych?
- 25. Maksymalna liczba wierszy w tabeli sqlite?
- 26. Czy istnieje maksymalna liczba zapasów git?
- 27. Maksymalna liczba oczekujących elementów w ThreadPool.QueueUserWorkItem
- 28. Maksymalna liczba elementów wyliczających w języku Java
- 29. Studio Android maksymalna liczba linii logcat
- 30. Maksymalna liczba urządzeń peryferyjnych w CoreBluetooth?
co pan próbował dowiedzieć się samemu? jaki jest dokładnie twój problem? czy możesz podać kilka przykładów? czy to zadanie domowe? – oezi
to nie jest praca domowa, dostałem ten problem od mojego przyjaciela, próbowałem rozwiązać go za pomocą ołówka i papieru i nie mogłem. Teraz nie znam żadnego rozwiązania poza brutalną siłą. Próbowałem kilku euristyki, ale zawsze istnieje przykład, kiedy moje rozwiązanie nie jest najlepsze. –
@Sega: musisz podać pytanie bardziej precyzyjnie lub prawdopodobnie zostanie ono zamknięte. W jaki sposób definiuje się na przykład granicę? –