Natknąłem się na ten problem na jednym z rosyjskich forów programowania, ale nie wymyśliłem eleganckiego rozwiązania.Pomoc algorytmu: jak podzielić macierz na N segmentów o najmniejszym możliwym największym segmencie (zbalansowane segmentowanie)
Problem:
Masz tablicę z N liczb całkowitych dodatnich, trzeba podzielić go na M sąsiednich segmentów, tak że całkowita największego segmentu jest najmniejsza możliwa wartość. Według sumy segmentów mam na myśli sumę wszystkich jej liczb całkowitych. Innymi słowy, chcę dobrze zbalansowanej segmentacji macierzy, w której nie chcesz, aby pojedynczy segment był zbyt duży.
przykład:
tablicy: [4, 7, 12, 5, 3, 16]
K = 3, co oznacza, że trzeba podzielić mi tablicy do 3 subarrays .
Rozwiązanie będzie następujące: [4,7] [12, 5] [3, 16], więc największy segment to [3, 16] = 19 i żaden inny wariant segmentacji nie może wytworzyć największego segmentu o mniejszej sumie .
Innym przykładem
- Tablica [3, 13, 5, 7, 18, 8, 20, 1]
- M = 4
Rozwiązanie: [3, 13, 5] [7, 18] [8] [20, 1], "najgrubszy" segment to [7, 18] = 25 (popraw mnie, jeśli się mylę, wymyśliłem ten przykład)
Mam wrażenie, że jest to jakiś klasyczny problem związany z CS/matematyką, prawdopodobnie z powiązanym z nim nazwiskiem słynnej osoby, jak problem Dijkstry. - Czy jest jakieś znane rozwiązanie? - Jeśli nie, to możesz wymyślić jakieś inne rozwiązanie oprócz brutalnego forsowania, które, o ile rozumiem złożoność czasu, jest wykładnikiem wykładniczym . (N^M, żeby być bardziej szczegółowym).
Dzięki z góry, stackoverflowers.
To pytanie byłoby lepiej dopasowane do [Wymiana programatorów] (http://programmers.stackexchange.com/). –
@Jordan dlaczego? Pomoc [StackOverflow] (http://stackoverflow.com/help/on-topic) mówi, że możesz zapytać o _a algorytm programowy_. [Pomoc dla programistów] (http://programmers.stackexchange.com/help/on-topic) mówi, że możesz zapytać o _algorithm i koncepcje struktury danych_. Mogłem zobaczyć to pytanie pasujące do każdej witryny. – kojiro
Jeśli jest to zadanie domowe, powinieneś pokazać kod i podstawowe badania własne (od definicji strony). Brzmi to jak problem z knappsackami, btw. – eckes