1. 程式人生 > >UVA 572 BFS 圖論入門

UVA 572 BFS 圖論入門

include sizeof 入門 fine body cst gpo esp string

題幹略。

註意八連塊的遍歷方式,秒得很:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 100+10
#define inf 100000000

char pic[maxn][maxn];
int ltf[maxn][maxn],m,n;

void dfs(int h,int l,int lt){
    if(h<0 || h>=m || l< 0 || l>=n) return
; if(ltf[h][l]==0 && pic[h][l]==@){ ltf[h][l]=lt; for(int i=-1;i<=1;i++) for(int j=-1;j<=1;j++) if(i!=0 || j!=0 ) dfs(h+i,l+j,lt); } else return; } int main(){ while(scanf("%d%d",&m,&n)==2 && m && n){
int cnt=0; for(int i=0;i<m;i++) scanf("%s",pic[i]); memset(ltf,0,sizeof(ltf)); for(int i=0;i<m;i++) for(int j=0;j<n;j++) if(ltf[i][j]==0 && pic[i][j]==@) dfs(i,j,++cnt); cout<<cnt<<endl; } return 0; }

UVA 572 BFS 圖論入門