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