求助!!!本地AC提交全WA
查看原帖
求助!!!本地AC提交全WA
648852
封禁用户楼主2022/7/28 22:03

代码

#include<cstdio>
using namespace std;
const int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int n=0,ans=0;
bool vis[100][201]={};
char mp[100][201]={};
void get(char *str)
{
    char c='\n';
    while(c=='\n'||c=='\r')c=getchar();
    while(c!='\n'&&c!='\r')
    {
        *str=c;
        str++;
        c=getchar();
    }
}
void dfs(int x,int y,int d=0)
{
    vis[x][y]=true;
    for(int i=0;i<4;i++)
    {
        int nx=x+dx[i],ny=y+dy[i];
        if(nx<0||nx>=n||ny<0||ny>199)continue;
        if(vis[nx][ny]||mp[nx][ny]<'a'||mp[nx][ny]>'z')continue;
        dfs(nx,ny,d+1);
    }
}
int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        get(mp[i]);
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;mp[i][j];j++)
        {
            if(!vis[i][j]&&mp[i][j]>='a'&&mp[i][j]<='z')
            {
                dfs(i,j);
                ans++;
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}
2022/7/28 22:03
加载中...