自己hack自己
  • 板块P1767 家族
  • 楼主hzoi_Shadow
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/5/1 21:32
  • 上次更新2023/10/23 16:59:02
查看原帖
自己hack自己
848964
hzoi_Shadow楼主2023/5/1 21:32
#include<bits/stdc++.h>
using namespace std;
int lens[501],f1[5]={0,1,-1,0,0},f2[5]={0,0,0,1,-1};
string island[501];
void dfs(int x,int y,int n)
{
	int i,nx,ny;
    island[x][y]='*';
    for(i=1;i<=4;i++)
	{
        nx=x+f1[i],ny=y+f2[i];
        if(1<=nx&&nx<=n&&1<=ny&&ny<=lens[nx]&&'a'<=island[nx][ny]&&island[nx][ny]<='z') 
		{
			island[nx][ny]='*';
			dfs(nx,ny,n);
    	}
	}
}
int main()
{
	int n,i,j,ans=0;
    cin>>n;
	getline(cin,island[0]);
    for(i=1;i<=n;i++)
	{
        getline(cin,island[i]);
        lens[i]=island[i].size();
    }
    for(i=1;i<=n;i++)
	{
        for(j=0;j<=lens[i]-1;j++)
		{
            if('a'<=island[i][j]&&island[i][j]<='z')
			{
                ans++;
                dfs(i,j,n);
            }
        }
    }
    cout<<ans;
    return 0;
}
2023/5/1 21:32
加载中...