Update 26/02 : ada kesalahan kecil pada file BFS, koreksinya sudah bisa didownload.
Harus dikuasai :
- Flood Fill : algoritma untuk mencari ada berapa ‘clusters’ atau ‘pulau’ dari peta yang diberikan.
input:
Baris 1 : banyak baris (r) dan banyak kolom(c)
Baris 2..r+1 : setiap baris berisi c buah bilangan, menggambarkan kondisi peta. -1 adalah laut, 0 adalah daratan.
Task :
daratan yang tersambung termasuk dalam 1 pulau.
1. keluarkan ada berapa pulau yang ada di peta.
2. nomori pulau2 tersebut terurut dari pulau yg ada di paling kiri atas. bila posisi itu adalah lautan, nomornya 0. outputkan nomor2 ini.
- Depth-First Search : algoritma mencari jalan keluar ‘maze’ dgn menelusuri satu jalan spesifik sampai terhambat, lalu kembali /backtracking dan mencoba jalan lain.
input:
Baris 1 : banyak baris (r) dan banyak kolom(c)
Baris 2..r+1 : setiap baris berisi c buah bilangan, menggambarkan kondisi peta. -1 adalah jalan tidak bisa dilalui, 0 adalah bisa dilalui.
baris r+2 : posisi baris start(startr) dan kolom(startc)
baris r+3 : posisi baris pintu keluar (endr) dan kolom(endc)
output:
1 bilangan : banyak langkah minimum untuk mencapai pintu keluar.
- Breadth-First Search : algoritma mencari jalan keluar ‘maze’ dgn menyebar – membuka langkah satu per satu.
problem sama dengan DFS.
Latihan :
- Semifinal KP UnPar 2010 [ZIP] Prob 9: Tiberium War [V]
- Z-Trening : z-musician
- UVA 439 : Knight Moves
- UVA 10004 : Bicoloring
- USACO 2.1 : The Castle
- OSN 2008 Sesi 3 : Knight Force
- OSN 2007 Sesi 3 : Menghitung Ruang Tertutup
- OSN 2009 Sesi 3 : Petunjuk Kasar
To be added : problems, solution
Tweet2 Responses to Graf Dasar
Leave a Reply Cancel reply
On the Web
Recent Comments
- Peter on US College Application Essay
- Peter on US College Application Essay
- angelinavj on US College Application Essay
- Peter on US College Application Essay
- didut on Bahasa Indonesia dan Lokalisasi
- widya on Programming
- Vederis Leunardus on Array
- nissa on US College Application Essay
- Rhemed on Rekursi
- Anonymous on Programming
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License (you're required to link to this blog whenever you republish my content).
Terimakasih banyak atas infonya…
kak veni, apakah contoh file .pas flood fill nya udah pasti betul, nga ada yg salah? bukannya function flood fillnya prosesx gak terbatas? krn if -nya pasti bernilai true terus kan?
procedure floodFill(plc,ri,ci:integer);
begin
if ((ri >= 1) or (ci >=1) or (ri <= r) or (ci <= c)) then begin
ar[ri,ci] := -1;
pulau[ri,ci] := plc;
floodFill(plc,ri+1,ci);
floodFill(plc,ri-1,ci);
floodFill(plc,ri,ci+1);
floodFill(plc,ri,ci-1);
end;
end;
ato apa sy yg salah? mohon bimbingannya kak, maklum baru blajar kak hehehe.. thanks a lot