我AC了个寂寞
查看原帖
我AC了个寂寞
338786
mushroom_knight楼主2020/4/30 22:35

RT

#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[200][200];
int b[200][200];
inline void dfs(int x,int y){
	if(x<1||y<1||x>n||y>m){
		return;
	}
	if(b[x][y+1]!=0){
		b[x][y+1]=0;
		dfs(x,y+1);
	}
	if(b[x][y-1]!=0){
		b[x][y-1]=0;
		dfs(x,y-1);
	}
	if(b[x+1][y]!=0){
		b[x+1][y]=0;
		dfs(x+1,y);
	}
	if(b[x-1][y]!=0){
		b[x-1][y]=0;
		dfs(x-1,y);
	}
}
inline int read(){
	int tot=0;
	int x=0;
	int f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-'){
			f=-1;
		}
	}
	while(ch>='0'&&ch<='9'){
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
inline void write(int x){
    char F[200];
    int tmp=x>0?x:-x ;
    if(x<0){ 
		putchar('-');
    }
    int cnt=0 ;
       while(tmp>0){
           F[cnt++]=tmp%10+'0';
           tmp/=10;
       }
       while(cnt>0){
			putchar(F[--cnt]);
       }
}
int main(){
	int tot=0;
	n=read();
	m=read();
	for(register int i=0;i<n;++i){
		for(register int j=0;j<m;++j){
			a[i][j]=getchar();
			b[i][j]=a[i][j]-48;
		}
	}
	for(register int i=0;i<n;++i){
		for(register int j=0;j<m;++j){
			if(!b[i][j]==0){
				dfs(i,j);
				b[i][j]=0;
				tot++;
			}
		}
	}
    write(tot);
    return 0;
}

全WA的我。。。

2020/4/30 22:35
加载中...