解析:**:
題目:oibh被突來的洪水淹沒了
還好oibh總部有在某些重要的地方起一些圍牆,
用*號表示,
而乙個封閉的*號區域洪水是進不去的……
現在給出oibh的圍牆建設圖,
問oibh總部沒被淹到的重要區域(由"0"表示)有多少。
輸入格式:
第一行是兩個數,x和y(x,y<=500)
第二行及以下是乙個由和0組成的xy的圖。
輸出格式:
輸出沒被水淹沒的oibh總部的「0」的數量。
輸入輸出樣例:
輸入樣例1:
5 5
*****
*0*0*
**0**
*0*0*
*****
輸出樣例1:5
解析:
前面已經寫過了一次1稿
這次的2稿和1稿
道理是大體相同的
所以題目是什麼意思
就不寫了
如果想要知道的話
可以去看1稿
這次使用dfs
也就是使用遞迴的方式搜尋
我們首先可以在這個的外圍
圍上一圈「0」
將所有會被衝到的地方
全部連線起來
接著我們用for
把外圍全部走一遍
在通過搜尋的方式
不斷地向裡延伸
最終剩下來的
就是沒被淹的
下面是**
**:
#include
#include
#include
#include
using
namespace std;
int n,m,sum=0;
char a[
501]
[501];
int xx[5]
=;int yy[5]
=;void
ddd(
int x,
int y)
}int
main()
}for
(int i=
0;i<=n;i++
) a[i][0
]='2';
for(
int i=
0;i<=m;i++
) a[0]
[i]=
'2';
for(
int i=
0;i<=m+
1;i++
) a[n+1]
[i]=
'2';
for(
int i=
0;i<=n+
1;i++
) a[i]
[m+1]=
'2';
for(
int i=
0;i<=n+
1;i++
)for
(int i=
0;i<=m+
1;i++
)/*for(int i=0;i<=n+1;i++) }
cout/fclose(stdin);
//fclose(stdout);
return0;
}
拜拜!!! 單向DFS 洛谷P1101
這題跟以往的dfs不同的是,它是單向的dfs 因為我做題少,所以第一次見到這種型別的題目 思路很簡單,但是對於第一次做這種單向dfs的我來說 我蒻 開始確實感覺無從下手。這道題目和以往的dfs不同的地方在於,dfs的方向是在外面判斷的,然後還要記錄路徑,路徑記錄全了才能往vis裡面加true。直接看...
洛谷 P1019 dfs回溯
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 現兩次 在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在...
洛谷 P3956 棋盤(DFS)
有乙個m m的棋盤,棋盤上每乙個格仔可能是紅色 黃色或沒有任何顏色的。你現在要從棋盤的最左上角走到棋盤的最右下角。任何乙個時刻,你所站在的位置必須是有顏色的 不能是無色的 你只能向上 下 左 右四個方向前進。當你從乙個格仔走向另乙個格仔時,如果兩個格仔的顏色相同,那你不需要花費金幣 如果不同,則你需...