Natknąłem się na ten problem, który wydaje się całkiem interesujący. Istnieje kilka filmów, które chcemy oglądać wszystkie z nich, ale pokazują one tylko w następujących godzinach:Zobacz wszystkie algorytmy filmów
movieA : 15
movieB : 14, 15, 17
movieC : 15, 17
movieD : 15, 20
Możemy oglądać w 15, B w 14 C na 17 i D na 20, więc jest to można oglądać je wszystkie. Pamiętaj, że nie możesz oglądać C w wieku 15 lat, nie można tego zrobić.
Jak można się domyślić, problem polega na tym, czy możemy obejrzeć je wszystkie.
Oczywiście możemy to rozwiązać poprzez cofnięcie, wypróbowanie wszystkich możliwości. Czy istnieje lepszy sposób na zrobienie tego? Mam pomysł na rozpoczęcie od filmów z najmniejszą liczbą dostępnych czasów, dzięki czemu możemy szybciej znaleźć rozwiązanie, jeśli istnieje rozwiązanie, w najgorszym przypadku złożoność czasu jest wciąż taka sama.
Czy istnieje lepszy algorytm dla tego problemu?
P.S. Jak prosił @gen, zapomniałem zaznaczyć, że każdy film ma 1 godzinę, więc jeśli obejrzysz go o 14:00, nie przegapisz tego o 15:00. Dzięki, że pytasz.
Jak długi jest film? – gen
@gen każdy film to godzina, więc nie musisz się martwić, jeśli obejrzysz film o 14:00, możesz pominąć ten o 15:00. Świetne pytanie! – Arch1tect
Wygląda na problem z dopasowaniem maksymalnym na wykresie dwudzielnym. –