【題目描述】
你有一張某海域nxn畫素的**,"."表示海洋、"#"表示陸地,如下所示:
.......
.##....
.##....
....##.
..####.
...###.
.......
其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。
由於全球變暖導致了海面上公升,科學家**未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰(上下左右四個相鄰畫素中有海洋),它就會被淹沒。
例如上圖中的海域未來會變成如下樣子:
.......
.......
.......
.......
....#..
.......
.......
請你計算:依照科學家的**,**中有多少島嶼會被完全淹沒。
【輸入格式】
第一行包含乙個整數n。 (1 <= n <= 1000)
以下n行n列代表一張海域**。
**保證第1行、第1列、第n行、第n列的畫素都是海洋。
【輸出格式】
乙個整數表示答案。
【樣例輸入】
7 .......
.##....
.##....
....##.
..####.
...###.
.......
【樣例輸出】
1 資源約定:
峰值記憶體消耗(含虛擬機器) < 256m
cpu消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。
注意:main函式需要返回0;
只使用ansi c/ansi c++ 標準;
不要呼叫依賴於編譯環境或作業系統的特殊函式。
所有依賴的函式必須明確地在原始檔中 #include
不能通過工程設定而省略常用標頭檔案。
提交程式時,注意選擇所期望的語言型別和編譯器型別。
//21:10 21:20 思路出 10
//23:20 23:35 15
//7:45 8:05 20
#includeusing namespace std;
int n;
bool vis[1005][1005];
char a[1005][1005];
char b[1005][1005];
bool v[1005][1005];
void dfs(int i,int j)
if(a[i][j]=='#')
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1); }
void dfs2(int i,int j)
if(b[i][j]=='#')
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1); }
void change()
} for(int i=1;i<=n;i++)
} }int main()
} int ans=0,ans2=0;
for(int i=1;i<=n;i++)//運用dfs計算陸地的數量
} }change();
for(int i=1;i<=n;i++)//運用dfs計算陸地的數量
} }
cout<#include using namespace std;
int n, m, cnt=0;
string maze[110];
bool vis[110][110];
void dfs(int x,int y)
vis[x][y]=true;
dfs(x-1,y);
dfs(x+1,y);
dfs(x,y-1);
dfs(x,y+1);
}int main()
for (int i = 0; i < n; i++)
}} cout<}
2018藍橋杯省賽C C B組 全球變暖
題目大意你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 它...
2018藍橋杯省賽B組 9 全球變暖
你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 它就會被淹...
藍橋杯2018初賽 全球變暖
題目描述 你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 ...