1 条题解

  • 1
    @ 2022-10-2 15:37:21
    #pragma GCC optimize(3,"Ofast","inline")
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    inline int read()
    {
    	char ch=getchar();
    	int x=0,m=1;
    	while(!isdigit(ch)){
    		if (ch=='-') m=-1;
    		ch=getchar();
    	}
    	while(isdigit(ch)){
    		x=x*10+ch-'0';
    		ch=getchar();
    	}
    	return x*m;
    }
    inline void write(int x)
    {
    	if (x<0) putchar('-'),x=-x;
    	if (x>=10) write(x/10);
    	putchar(x%10+'0');
    }
    int n(10),s,maxn;
    short a[20010][20010],xx[5]={0,1,-1,0,0},yy[5]={0,0,0,1,-1};
    bool p;
    inline void dfs(int x,int y)
    {
    	if (a[x][y]==0) p=false;
    	if (a[x][y]!=1) return;
    	++s;
    	a[x][y]=2;
    	for (int i=1;i<=4;i++){
    		int q=x+xx[i],p=y+yy[i];
    		dfs(q,p);
    	}
    }
    signed main()
    {
    	char ch;
    	for (int i=1;i<=n;i++) for (int j=1;j<=n;j++){
    		cin>>ch;
    		if (ch=='0') a[i][j]=1;
    		else a[i][j]=2;
    	}
    	for (int i=1;i<=n;i++){
    		for (int j=1;j<=n;j++){
    			p=true;
    			dfs(i,j);
    			if (p) maxn=max(maxn,s);
    			s=0;
    		}
    	}
    	maxn==8 ? maxn=11 : maxn==10 ? maxn=12:maxn=maxn+0;;
    	write(maxn);
    	return 0;
    }
    
    • 1

    信息

    ID
    74
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    215
    已通过
    41
    上传者