hdu1241 dfs or bfs輕鬆搞定

2021-09-26 04:51:15 字數 1708 閱讀 2361

比較基礎,裸題。模版把

傳送門:

geosurvcomp地質調查公司負責檢測地下石油儲量。 geosurvcomp一次與乙個大的矩形區域一起工作,並建立乙個網格,將土地劃分為多個方形圖。然後,它使用感測裝置分別分析每個圖,以確定該圖是否含有油。含有油的地塊稱為口袋。如果兩個口袋相鄰,則它們是相同油藏的一部分。油沉積物可能非常大並且可能包含許多口袋。您的工作是確定網格中包含多少不同的油藏。

輸入輸入檔案包含乙個或多個網格。每個網格都以包含m和n的行開頭,即網格中的行數和列數,由單個空格分隔。如果m = 0,則表示輸入結束;否則1 <= m <= 100並且1 <= n <= 100.此後是m行,每行n個字元(不計行行尾字元)。每個字元對應乙個圖,並且是「*」,表示沒有油,或「@」,表示油口袋。

產量對於每個網格,輸出不同的油藏數量。如果它們在水平,垂直或對角線上相鄰,則兩個不同的口袋是同一油層的一部分。油藏不得超過100個口袋。

1 1*

3 5@@*

@

@@*1 8

@@***@

5 5****@

@@@@**@

@@@@

@@**@

0 0樣本輸出01

22題意:乙個@的八個方向都算成同乙個油田區域,*為無油區,問圖上有多少個不同的油田區域。深搜廣搜都可以直接做出來

#include

#include

#include

#include

#include

using namespace std;

char maze[

105]

[105];

int n,m;

int dir[8]

[2]=

,,,,

,,,}

;//定義八個方向

bool check

(int x,

int y)

void

dfs(

int x,

int y)}}

intmain()

for(

int i=

0;i}printf

("%d\n"

,cnt);}

return0;

}

#include

#include

#include

#include

#include

#include

using namespace std;

char maze[

105]

[105];

//bool vis[105][105];

int n,m;

int dir[8]

[2]=

,,,,

,,,}

;struct node

;bool check

(int x,

int y)

void

bfs(

int x,

int y)}}

}int

main()

for(

int i=

0;i}printf

("%d\n"

,cnt);}

return0;

}

//廣搜多用結構體,然後佇列實現。深搜好像是用棧實現

DFS專攻 HDU 1010 DFS 奇偶剪枝)

這周專攻的第一道dfs終於領會了 繼續努力!剪枝的目的就是要省時 include include include include include include include include include include include define mem a,b memset a,b,siz...

hdu 蜘蛛牌(經典DFS)

problem description 蜘蛛牌是windows xp作業系統自帶的一款紙牌遊戲,遊戲規則是這樣的 只能將牌拖到比她大一的牌上面 a最小,k最大 如果拖動的牌上有按順序排好的牌時,那麼這些牌也跟著一起移動,遊戲的目的是將所有的牌按同一花色從小到大排好,為了簡單起見,我們的遊戲只有同一花...

hdu 4109 dfs 剪枝優化

求最久時間即在無環有向圖裡求最遠路徑 dfs 剪枝優化 從0節點 自己增加的 出發,0到1 n個節點之間的距離為1,mt i 表示從0點到第i個節點目前所得的最長路徑 include include include include include includeusing namespace std...