求助
查看原帖
求助
735509
yangzichen1203楼主2023/11/21 20:26
#include<bits/stdc++.h>
using namespace std;
#define MAXN 205
int n,a[MAXN][MAXN],len[MAXN];
bool vis[MAXN][MAXN];
const int fx[4]={-1,0,0,1};
const int fy[4]={0,-1,1,0};
void dfs(int x,int y){
	for(int i=0;i<4;i++){
		int xx=x+fx[i],yy=y+fy[i];
		if(xx>=0&&xx<n&&yy>=0&&yy<len[xx]&&!vis[xx][yy]&&a[xx][yy]){
			vis[xx][yy]=1;
			dfs(xx,yy);
		}
	}
}
int main(){
	cin>>n;
	string str;
	getline(cin,str);
	for(int i=0;i<n;i++){
		getline(cin,str);
		len[i]=str.size();
		for(int j=0;j<len[i];j++){
			if(str[j]==' '||str[j]=='*') a[i][j]=0;
			else a[i][j]=1;
		}
	}
	int ans=0;
	for(int i=0;i<n;i++){
		for(int j=0;j<len[i];j++){
			if(a[i][j]&&!vis[i][j]){
				dfs(i,j);
				ans++;
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}

第四个点WA了 in:

10
   **gdoluuxajfmhtfqpkn
  ***hpqvju
 *j
       mh**qgwsdfhpxnitnhxwrbtwibwpad**kvbt*akl***
       lvkwopk*mu**qccu*n****ozr*nb**cfw**fs*ueaaz
            *gbmcr*zvc*ywxqkhizobnjrb*y************hswscsxdjvvvrosr**zcf*nrvekcw********fc*aaq
           mcwmwp*************ba*wlqkslsffucssm*****dhj*he********pffzirybfzhl**
                 t*ouyjnrfvf*********yfah****h*******dgmtjse*cf****bi**h**zkqqma*****repbc****kej**bc*s******vmpehpekefut**uexmp
                  ****nalnb*if**********m****bpbcautm****fvkkipgnsl********txtakd****zeuasdoltk*xkr*rmczg*fwtpgljrf**gkqw******o*hxugffo*
             *******tz**znokf***omhlmvwdjkqzywezkphrj*avnlwc**y***dvpaw*hoe***bvnskt**cnf*jeavluvb

ans:

16

实测正确,但评测机输出18

2023/11/21 20:26
加载中...