Oil Deposits 石油储量
生活随笔
收集整理的這篇文章主要介紹了
Oil Deposits 石油储量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GeoSurvComp地質調查公司負責檢測地下石油礦床。GeoSurvComp 一次處理一個大的矩形土地區域,并創建一個網格,將土地劃分為多個方形地塊。然后,它分別分析每個地塊,使用傳感設備確定該地塊是否含有石油。含有油的地塊稱為口袋。如果兩個口袋相鄰,則它們是同一油沉積物的一部分。油沉積物可能相當大,可能包含許多口袋。您的工作是確定網格中包含多少種不同的油藏。
?
輸入
輸入包含一個或多個網格。每個網格都以一條包含 m 和 n 的線開頭,m 和 n 是網格中的行數和列數,由單個空格分隔。如果m = 0,則表示輸入結束;否則 1 <= m <= 100 和 1 <= n <= 100。在此之后是 m 行,每行包含 n 個字符(不計算行尾字符)。每個字符對應于一個圖,并且是"*",表示沒有油,或"@",表示油袋。?
輸出
在水平、垂直或對角線上相鄰。一個油沉積物不會包含超過100個口袋。示例輸入
1 1 * 3 5 *@*@* **@** *@*@* 1 8 @@****@* 5 5 ****@ *@@*@ *@**@ @@@*@ @@**@ 0 0示例輸出 0 1 2 2 #include<iostream>using namespace std; char num[105][105]; int c, d; int mms(int a,int b) {if(num[a][b]=='*')return 0;else num[a][b]='*';if(a>0)mms(a-1,b);if(b>0)mms(a,b-1);if(a>0&&b>0)mms(a-1,b-1);if(a>0&&b<d)mms(a-1,b+1);if(b<d)mms(a,b+1);if(a<c)mms(a+1,b);if(a<c&&b>0)mms(a+1,b-1);if(a<c&&b<d)mms(a+1,b+1);} int main() {int m,n, i, j ,k,max;while(scanf("%d%d\n", &m, &n)!=EOF, m!=0){max=0;c=m;d=n;c--;d--;for(i=0;i<m;i++)gets(num[i]);for(i=0;i<m;i++)for(j=0;j<n;j++)if(num[i][j]=='@'){mms(i,j);max++;}cout<<max<<endl;}return 0; }總結
以上是生活随笔為你收集整理的Oil Deposits 石油储量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NC集成旺店通使用JSONObject获
- 下一篇: 5-10 公路村村通 (30分)