這是一道c/c++上機題。用遞迴解決。
千島湖,位於中國浙江省杭州西郊淳安縣境內,東距杭州 129 千公尺、西距黃山 140 千公尺,是長江三角洲地區的後花園,是世界上島嶼最多的湖,因湖內擁有 1078 座翠島而得名。
現在小紅手裡有一張 n×n 的千島湖地圖,地圖上「*」表示陸地,「.」表示水域,兩塊陸地相連當且僅當一塊陸地在另一塊陸地的東南西北(上下左右)四個方向的相鄰格仔上。小紅想知道地圖上有幾個島嶼,可是地圖實在太大了,人難以完成這個任務,於是他請來了會程式設計的你來幫她解決這個問題。
input description
一張 n×n 的地圖 (1<=n<=1000)
output description
乙個數字,表示島嶼個數。
samples
input 1
**.*.
..*..
**...
.*...
**...
output 1
4input 2
*.*.......
...*....*.
......*..*
**........
...*..*...
...*.....*
...**..*.*
**..*..*.*
..*...*...
*.*...*.*.
output 2
16
c++如下(標頭檔案如此古怪是因為學校oj的feature,要不然過不了)
#include #include using namespace std;
typedef struct map map;
map initmap() ;
scanf("%s", m.m[0]);
m.size = strlen(m.m[0]);
for (int i = 1; i < m.size; i++)
return m;
}void check(map *m, int i, int j, int count)
if (m->legal[i][j - 1] == 0 && m->m[i][j - 1] == '*')
if (m->legal[i][j + 1] == 0 && m->m[i][j + 1] == '*')
if (m->legal[i + 1][j] == 0 && m->m[i + 1][j] == '*')
}int main() else }}
cout
}
綠色創意2 0 探訪阿里千島湖資料中心
本文講的是綠色創意2.0 探訪阿里千島湖資料中心 it168 雲計算 一直以來,資料中心的選址一般都要綜合考慮周邊的自然環境,從而因地制宜的採用外界自然資源來幫助資料中心節電 節能,有效緩解資料中心的超高能耗。在美國矽谷的幾大網際網路巨頭與雲巨頭,他們在資料中心的選址上,或多或少的都借用了自然環境的...
千島湖冰水救人,程式設計師見義勇為,手工點讚!
昨天,對於很多杭州人來說,可能只是下半年最強寒潮之下的乙個寒冷週日。但對於劉新停來說,卻是乙個驚心動魄的週日!因為那是他第一次救人,一次就救了4個!事後,他裹著毯子,喝著熱乎乎的千島湖魚頭湯,渾身還是瑟瑟發抖。這時,他才真正感受到了千島湖的水原來那麼冷.險!環千島湖路上 小車被卡車撞下山坡 衝入千島...
冒險島問題 劃分島嶼與陸地(矩陣求四鄰域個數問題)
冒險島問題 劃分島嶼與陸地 我們可以用乙個二維陣列來描述冒險島的地圖,0表示水域,1表示陸地。四鄰域相近為連通 不包括對角 統計冒險島上有幾個島嶼?輸入 4 5 輸出 2 include stdafx.h include using namespace std 遞迴呼叫,遍歷某個島嶼的所有畫素點 v...