Temat: Metoda zachłanna
Transkrypt
Temat: Metoda zachłanna
ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE Temat: Metoda zachłanna Zadanie 1 Organizuj c spływ wypo yczamy na przystani kajaki. Wszystkie kajaki s jednakowe. W jednym kajaku mog popłyn co najwy ej dwie osoby, a suma ich wag nie mo e przekroczy ustalonego maksymalnego obci enia. Aby zapłaci jak najmniej, szukamy sposobu rozmieszczenia wszystkich uczestników spływu w minimalnej liczbie kajaków. Napisz program, który: wczytuje maksymalne obci enie kajaka, liczb uczestników spływu i wag ka dego z nich, a nast pnie oblicza minimaln liczb kajaków, jakie nale y wynaj , aby rozmie ci w nich wszystkich uczestników spływu zgodnie z przepisami. Zakładamy, e maksymalne obci enie kajaka w jest liczb całkowit i spełnia nierówno 80 ≤ w ≤ 200, liczba uczestników spływu n spełnia warunek 1 ≤ n ≤ 30000, a waga ka dego z uczestników spływu jest liczb całkowit nale c do przedziału < 5, w >. Wynikiem działania programu ma by jedna liczba - minimaln liczba kajaków, jak trzeba wynaj . Przykład Dane: 100 - maksymalne obci enie kajaka; 9 - liczba uczestników spływu; wagi uczestników spływu: 90 , 20, 20, 30, 50, 60, 70, 80, 90. Wynik: 6 - minimalna liczba kajaków Zadanie 2 Dana jest tabliczka czekolady zło ona z m x n cz stek. Czekolad nale y połama na pojedyncze cz stki. Kawałki czekolady mo emy złama wzdłu pionowych i poziomych linii (zaznaczonych na rysunku liniami przerywanymi) wyznaczaj cych podział czekolady na cz stki. Jedno przełamanie kawałka czekolady wzdłu wybranej pionowej lub poziomej linii dzieli ten kawałek na dwa mniejsze. Ka de przełamanie kawałka czekolady jest obarczone pewnym kosztem wyra aj cym si dodatni liczb całkowit . Koszt ten nie zale y od wielko ci łamanego kawałka, a jedynie od linii wzdłu której łamiemy. Oznaczmy koszty łamania wzdłu kolejnych pionowych linii przez x1, x2, . . . , xm-1, a wzdłu poziomych linii przez y1, y2, . . . , yn-1. Koszt połamania całej tabliczki na pojedyncze cz stki to suma kosztów kolejnych przełama . Nale y obliczy minimalny koszt połamania całej tabliczki na pojedyncze cz stki. ALGORYTMY I STRUKTURY DANYCH WICZENIA, III SEMESTR, STUDIA DZIENNE Przykładowo, je eli połamiemy czekolad przedstawion na rysunku, najpierw wzdłu linii poziomych, a nast pnie ka dy z otrzymanych kawałków wzdłu linii pionowych, to koszt takiego połamania wyniesie y1 +y2 +y3 +4 ( x1 +x2 +x3 +x4 +x5). Napisz program, który: wczyta liczby x1, x2, ... , xm-1 i y1, y2, ..., yn-1, obliczy minimalny koszt połamania całej tabliczki na pojedyncze cz stki. Zakładamy, e rozmiary tabliczki czekolady m i n spełniaj ce warunek 2 ≤ m, n ≤ 1 000 . Koszty złama pionowych, liczby x1, x2, . . . , xm-1, s całkowite i spełniaj nierówno : 1 ≤ xi ≤ 1 000. Koszty złama poziomych, liczby y1, y2, . . . , yn-1 to te warto ci całkowite takie, e 1 ≤ yi ≤ 1 000 . Wynikiem działania programu ma by minimalny koszt połamania całej tabliczki na pojedyncze cz stki. Przykład Dane: rozmiary tabliczki czekolady: m = 6, n = 4, koszty łama pionowych: 2, 1, 3, 1, 4, koszty łama poziomych: 4, 1, 2 Wynik: 42