Mam grupę ludzi i dla każdego z nich listę przyjaciół i listę wrogów. Chcę je uszeregować (bez kółek, jak na stole), tak, aby preferowani nie byli wrogowie, a tylko przyjaciele są obok siebie.Algorytm znajdowania "dobrych" sąsiadów - kolorowanie wykresu?
Przykład z wejściem: https://gist.github.com/solars/53a132e34688cc5f396c
myślę, że trzeba użyć kolorowanie grafu, aby rozwiązać ten problem, ale nie jestem pewien, w jaki sposób - Myślę, że mam opuścić przyjaciół (lub wrogów) Lista zrobić łatwiej i odwzoruj na wykres.
Czy ktoś wie, jak rozwiązać takie problemy i może mi powiedzieć, czy jestem na dobrej drodze?
próbki kodu lub przykłady forum będzie również miły, nie przeszkadza mi język programowania, Zwykle używam Ruby, Java, Python, Javascript
dziękuję za pomoc!
Spójrz w "ścieżkę Hamiltona" –
Czy każdy będzie zawsze przyjacielem lub wrogiem, czy możesz być obojętny? Twój przykład sugeruje, że możesz być obojętny. Czy musisz usiąść obok przyjaciela, czy możesz usiąść przy kimś, kto nie jest wrogiem? –
jeśli nie masz zbyt wielu osób, sugerowałbym napisanie algorytmu, aby wypróbować wszystkie możliwe polecenia siedzące. I zatrzymaj się na pierwszym, który spełnia wszystkie warunki. – RomCoo