南理oj 1237 最大島嶼(dfs)

2021-07-12 04:02:27 字數 1319 閱讀 9184

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。  這是乙個由海洋、島嶼和海盜組成的危險世界。面對危險重重的海洋與詭譎的對手,如何憑藉智慧型與運氣,建立起乙個強大的海盜帝國。

傑克船長手頭有一張整個海域的海圖,上面密密麻麻分布著各個海嶼的位置及面積。他想盡快知道整個海域共有多少島嶼以及最大島嶼的面積。

輸入

第1行:m n t,表示海域的長,寬及乙個單位表示的面積大小

接下來有m行 ,每行有n個01組成的序列以及其中穿插一些空格。0表示海水,1表示陸地,其中的空格沒用,可以忽略掉。

輸出輸出一行,有2個整數,乙個空格間隔,表示整個海域的島嶼數,以及最大島嶼的面積

樣例輸入

8 16 99

00000000 00000000

0000110011000000

0001111000111000

0000000  00 0000000

00111  111000001  10

001110000  0000000

0100001111 111100

0000000000000000

樣例輸出

5 990

提示①若乙個陸地八個方向之一(上、下、左、右、左上、右上、左下、右下)的位置也是陸地,則視為同乙個島嶼。

② 假設第一行,最後一行,第一列,最後一列全為0.

③ 1**

第八屆河南省程式設計大賽

上傳者hnu_acm

對地圖處理好,簡單dfs。

**如下:

#include #include #include using namespace std;

int h,w,s;

char map[511][511];

int move_x[8]=;

int move_y[8]=;

int step;

int sum = 0;

int s = 0;

bool check (int x,int y)

void dfs(int x,int y)

int main()

} for (int i = 1 ; i <= h ; i++)

}} printf ("%d %d\n",sum,s*s);

return 0;

}

nyoj1237 最大島嶼 dfs

時間限制 1000 ms 記憶體限制 65535 kb 難度 2描述 神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。這是乙個由海洋 島嶼和海盜組成的危險世界。面對危險重重的海洋與詭譎...

nyoj 1237 最大島嶼(dfs)

描述 神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。這是乙個由海洋 島嶼和海盜組成的危險世界。面對危險重重的海洋與詭譎的對手,如何憑藉智慧型與運氣,建立起乙個強大的海盜帝國。傑克船長...

nyoj 1237 最大島嶼

神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。這是乙個由海洋 島嶼和海盜組成的危險世界。面對危險重重的海洋與詭譎的對手,如何憑藉智慧型與運氣,建立起乙個強大的海盜帝國。傑克船長手頭有...