千島湖島嶼問題 C

2021-10-03 04:12:24 字數 1305 閱讀 8590

這是一道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...