Usaco DEC08 bronze 劣質的草

2022-07-24 10:21:11 字數 1987 閱讀 9215

題目描述

貝茜像其它奶牛一樣正在吃草,她正在思考她所在的地方。她注意

到她只得到了乙個平於海平面的廣泛大片牧場。只有海拔1公尺或者更

高更硬的草不那麼美味。草隨著海拔的增加越發難吃。

繼續咀嚼,她意識到,這沒有食慾的食物長成兩側的丘陵,形成了青

翠美味豐富草地海洋中的一系列劣質草小島 。

貝茜穿上她的實驗服,決心測定她的牧場有多少劣草小島。她畫出一

張畫有被分成r (1 < r <= 1,000) 行、c (1 < c<= 1,000)列的1公尺x1公尺

小格仔的地圖。她為每個小格仔測量了海拔高度,並四捨五入到

非負整數。她飢餓地把所有美味草標的海拔標記成0。

她著手統計小島。任何水平、垂直、斜向相鄰的兩個有劣草的格仔將

被認為在同乙個島中。

在每一張她提供的地圖中有多少劣草島嶼呢?

程式名稱: badgras

輸入輸出

樣例輸入

8 74 3 2 2 1 0 1

3 3 3 2 1 0 1

2 2 2 2 1 0 0

2 1 1 1 1 0 0

1 1 0 0 0 1 0

0 0 0 1 1 1 0

0 1 2 2 1 1 0

0 1 1 1 2 1 0

樣例輸出

題解:明顯的一道搜尋題。dfs、bfs都可以,此題與一題很是相似:「細胞」,大家也可以去看看。

本題可以去找乙個》0的格仔,然後就從這個格仔向八個方向拓展,每次找到乙個》0的格仔就記錄且改成0。然後就可以過去。若是資料還要大一些,bfs可以用雜湊表、滾動陣列、雙向bfs來優化。

此乃bfs:

標程:

type

new=record

x:longint;

y:longint;

end;

var i,j,k,l,n,m,p1,p2,p3,sp:longint;

a:array[1..1000000] of new;

s:array[1..1000,1..1000] of longint;

bz:array[1..1000,1..1000] of boolean;

fx:array[1..8,1..2] of longint=((-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(1,-1),(1,0),(1,1));

procedure gc(dep:longint);

var i,j,k,l,nx,ny,ans:longint;

begin

for i:=1 to 8 do

begin

nx:=a[dep].x+fx[i,1];

ny:=a[dep].y+fx[i,2];

if (nx>0) and (nx0) and (ny0 then

begin

bz[i,j]:=true;

end;

end;

end;

p1:=1;p2:=1;p3:=1;

for i:=1 to n do

begin

for j:=1 to m do

begin

if bz[i,j]=true then

begin

a[p3].x:=i;a[p3].y:=j;

bz[i,j]:=false;

inc(sp);

repeat

for k:=p1 to p2 do

begin

gc(k);

end;

p1:=p2+1;

p2:=p3;

until p1>p2;

fillchar(a,sizeof(a),0);

p1:=1;

p2:=1;

p3:=1;

end;

end;

end;

writeln(sp);

end.

USACO DEC09 電視遊戲問題

農夫約翰的奶牛們遊戲成癮!本來fj是想要按照陶叫獸的做法拿她們去電擊戒癮的,可是後來他發現奶牛們玩遊戲之後比原先產更多的奶。很明顯,這是因為滿足的牛會產更多的奶。但是,奶牛們在哪個才是最好的遊戲平台這個問題上產生了巨大的分歧。乙隻奶牛想要買一台xbox 360來跑 光暈3 另外乙隻奶牛想要一台任天堂...

151 USACO Dec07 建造路徑

輸入檔案 roads.in輸出檔案 roads.out簡單對比 時間限制 1 s 記憶體限制 128 mb 譯 by cmykrgb123 描述farmer john 剛剛得到了幾個新農場!他想把這幾個農場用路連線起來,這樣他就可以通過筆直的公路從乙個農場到另乙個農場了。現在已經有了幾條連線著的農場...

字元0 數字0和 0

binoct dechex 縮寫 字元 解釋0000 000000 00nut null 空字元00110000 6048300 字元0ascii碼值 0 表示空字元,空字元就是平時所說的 0 字元 0 ascii碼值為 48,如 012 字串中的 0 表示字元 0 數字 0,所說的數字 0,就是平...