你有一張某海域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份的填空題沒有交上去挺遺憾意外,其他的體驗都很好...