2018第九屆藍橋杯C語言第九題 全球變暖

2021-09-12 06:35:16 字數 1507 閱讀 4149

你有一張某海域nxn畫素的**,"."表示海洋、"#"表示陸地,如下所示:

.......

.##....

.##....

....##.

..####.

...###.

.......

其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。  

由於全球變暖導致了海面上公升,科學家**未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰(上下左右四個相鄰畫素中有海洋),它就會被淹沒。  

例如上圖中的海域未來會變成如下樣子:

.......

.......

.......

.......

....#..

.......

.......

請你計算:依照科學家的**,**中有多少島嶼會被完全淹沒。  

【輸入格式】

第一行包含乙個整數n。  (1 <= n <= 1000)  

以下n行n列代表一張海域**。  

**保證第1行、第1列、第n行、第n列的畫素都是海洋。  

【輸出格式】

乙個整數表示答案。

【輸入樣例】

7 .......

.##....

.##....

....##.

..####.

...###.

.......  

【輸出樣例】

1  資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

簡單深度優先搜尋。不過需要注意的是求的是減少了島,不是剩餘的島。

**:

#include //只要進行標記就行了。 

#include using namespace std;

const int inf=1e3+7;

struct node

themap[inf][inf];

int now=1,n;

int x1[5]=;

int y1[5]=;

int temp[1000007];

bool check(int x,int y)

return true;

}bool check1(int x,int y) //這裡。

return true;

}void dfs(int x,int y)

for(int i=1;i<=4;i++)

}}int main()

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

}//cout

for(int j=1;j<=n;j++)

int ans=0;

for(int i=1;i<=now+2;i++)

if(temp[i]==1)ans++;

cout

}

藍橋杯第九屆決賽

x星球的鈔票的面額只有 100元,5元,2元,1元,共4種。小明去x星旅遊,他手裡只有2張100元的x星幣,太不方便,恰好路過x星銀行就去換零錢。小明有點強迫症,他堅持要求200元換出的零鈔中2元的張數剛好是1元的張數的10倍,剩下的當然都是5元面額的。銀行的工作人員有點為難,你能幫助算出 在滿足小...

第九屆藍橋杯 螺旋折線

如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y 對於40 的資料,1000 x,...

第九屆藍橋杯決賽之旅

3月份,參加的藍橋杯省賽,沒怎麼準備,意料之外的拿了個省一,於是才有了這次藍橋盃國賽之旅。雖然對於藍橋杯的詬病的聲音一直都有,但a組的國賽的選手清北和其他牛校的還真佔了不少。乙個二等獎基本被他們包攬了。而我只做出了三道題不幸打鐵,除了最後幾秒鐘有道41份的填空題沒有交上去挺遺憾意外,其他的體驗都很好...