程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ LAKE COUNTING 2386

POJ LAKE COUNTING 2386

編輯:C++入門知識

POJ LAKE COUNTING 2386


基本的dfs的題,看了挑戰程序設計這本書對這個算法有了些初步的了解,通過不斷的查找不斷的更改,找到連在一起的塊,提交poj的時候compile error 了兩次,第一次沒有修改編譯器,可能是很久沒做題的原因了吧,然後就是糾結是否輸入的時候要加循環,導致while 的括號多了一個,我的codeblocks也沒發現這個bug,算了,acm的題還是多練吧

#include
#include
using namespace std;
const int MAX_N=101,MAX_M=101;
int n,m;
char field[MAX_N][MAX_M];
void dfs(int x,int y){
field[x][y]='.';
for(int xn=-1;xn<=1;xn++){
for(int yn=-1;yn<=1;yn++){
int xx=xn+x;
int yy=yn+y;
if(0<=xx&&xx<=n&&0<=yy&&yy<=m&&field[xx][yy]=='W')
dfs(xx,yy);
}
}
}
void solve(){
int res=0;
for(int i=0;i for(int j=0;j if(field[i][j]=='W'){
dfs(i,j);
res++;
}
}


}
printf("%d\n",res);
}
int main(){
cin>>n>>m;
// char field[MAX_N][MAX_N+1];
for(int i=0;i for(int j=0;j cin>>field[i][j];
}
}
solve();

return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved