地質勘探局地質勘探局負責探測地下油層。geosurvcomp每次處理乙個大的矩形區域,並建立乙個網格,將土地劃分為許多方形地塊。然後分別分析每個地塊,使用感測裝置來確定該地塊是否含有石油。一塊含有石油的土地叫做口袋。如果兩個油藏相鄰,則它們屬於同一油層。石油蘊藏量可能相當大,可能包含許多小塊。你的工作是確定乙個電網中有多少不同的石油儲藏。
輸入檔案包含乙個或多個網格。每個網格都以包含m和n的一行開始,m和n是網格中的行數和列數,由乙個空格分隔。如果m = 0,則表示輸入結束;否則1 <= m <= 100, 1 <= n <= 100。後面是m行,每行有n個字元(不包括行尾字元)。每個角色對應乙個情節,要麼是「*」,代表沒有石油,要麼是「@」,代表乙個油袋。
對於每個網格,輸出不同的石油儲量的數量。兩個不同的儲集層如果在水平、垂直或對角方向相鄰,則屬於同一油氣藏的一部分。乙個石油礦床最多只能容納100個口袋。「@」,代表乙個油袋。
樣例輸入11
*35*@*@*
**@*
**@*@*18
@@**
**@*55
****@
*@@*@
*@**@
@@@*@
@@**@00
樣例輸出01
22
使用遞迴解決,每次找到』@『時,總數加一,並且
將於該』@『連續的所有』@『標記為』#』。
**如下:
#
include
#include
#include
#include
using
namespace std;
char p[
105]
[105];
int n,m;
voidhs(
int x,
int y)}}
}int
main()
int sum =0;
for(i=
1; i<=n; i++)}
}printf
("%d\n"
,sum);}
return0;
}
DFS專題 BFS複習
題意 從起始點出發,遇到坑不走,問能夠到達的點有多少個。思路 板子題。dfs或者bfs都可以 dfs includeusing namespace std define ll long long define clr a memset a,0,sizeof a const int maxn 1e5 ...
油田合併問題
1.問題描述 2.思路及實現 1.問題描述 某石油公司發現了乙個油田。該油田由n m個單元組成的矩形,有些單元裡有石油,有些則沒有。單元油田可以通過上,下,左或右連通。在乙個單元油田裡架設一台採油機,它可以把和該單元油田相連的單元油田的石油採完。該公司想知道最少需要架設幾台採油機能把所有的石油採完?...
Oil Deposits(油田問題)
題意 找出地圖上的油層數,每個油層由多個油藏組成,這些油藏相鄰,常規的搜尋問題,每次向八個方向搜尋油藏。此處為dfs include include include include using namespace std intm,n char mp 105 105 void dfs int a,i...