Temat 5: Ćwiczenia w stosowaniu techniki zachłannej i

Transkrypt

Temat 5: Ćwiczenia w stosowaniu techniki zachłannej i
ASD, zestaw zada nr 5, wiczenia nr 6, informatyka, studia stacjonarne
J.Koszelew
Temat 5:
wiczenia w stosowaniu techniki zachłannej i programowania
dynamicznego
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.
Zaproponuj mo liwie najefektywniejszy algorytm, który na podstawie maksymalnego
obci enie kajaka, liczby uczestników spływu i wag ka dego z nich, 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 ma by minimaln liczba kajaków, jak trzeba wynaj .
Okre l koszt swojego algorytmu.
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
Na torze stoi n wagonów, o numerach od 1 do n, załadowanych towarem. Wagony nie s ze
sob poł czone. Kilka wagonów poł czonych ze sob nazwiemy składem. Ł czeniem
wagonów zajmuje si pan Józef, ale za poł czenie dwóch s siednich wagonów, jednego o
masie a i drugiego o masie b ton pobiera opłat a+b złotych. Podobnie, je li trzeba poł czy
skład o ł cznej masie a z s siednim składem o ł cznej masie b, pan Józef tak e inkasuje a + b
złotych. Prace pana Józefa nadzoruje in ynier Stefan. In ynier zastanawia si , w jakiej
kolejno ci pan Józef powinien ł czy składy, aby całkowity koszt poł czenia wszystkich
wagonów był jak najmniejszy. Pomó in ynierowi przyszły in ynierze !!! i zaproponuj
mo liwie najefektywniejszy algorytm, który na podstawie mas kolejnych wagonów obliczy
najmniejszy mo liwy koszt poł czenia wszystkich wagonów oraz okre li sposób ł czenia
wagonów i składów tak, eby otrzyma ten najmniejszy koszt. Zakładamy, e liczba
wagonów n spełnia nierówno . Masy wagonów to te liczby całkowite z przedziału <0,
10000>. Wynikiem algorytmu jest najmniejszy mo liwy koszt ł czenia wagonów.
Okre l koszt swojego algorytmu.
1
ASD, zestaw zada nr 5, wiczenia nr 6, informatyka, studia stacjonarne
J.Koszelew
Przykład
Dane: liczba wagonów: 4, masy wagonów: 3 2 2 3
Wyniki: minimalny koszt ł czenia wagonów w skład: 20.
Zadanie 3
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.
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.
2
ASD, zestaw zada nr 5, wiczenia nr 6, informatyka, studia stacjonarne
J.Koszelew
Okre l koszt swojego algorytmu.
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
Zadanie 4
Pan Pofesor Do wiadczalski ch tnie współpracuje z centraln agencj wywiadowcz w
swoim kraju. Ostatnio otrzymał zadanie złamania pewnego szyfru i potrzebny jest mu
mo liwie najszybszy algorytm rozwi zuj cy nast puj cy problem. Dane s dwa ci gi
znaków. Oznaczmy te ci gi przez A i B. Zaproponuj algorytm, który znajdzie długo
mo liwie najdłu szego ci gu znaków wyst puj cego w obydwu ci gach A i B.
Okre l koszt swojego algorytmu.
Przykład
Dane: HOUSEBOAT - ci g A; COMPUTER - ci g B.
Wynik: 3 (OUE - najdłu szy, wspólny ci g znaków w ci gach A i B)
3