2 条题解

  • 1
    @ 2022-10-6 11:28:36
    #include<bits/stdc++.h>
    using namespace std;
    struct note
    {
        long long x,y,num;
    };
    char mi[1000][1000];
    long long n,m;
    long long k=0;
    long long w,e;
    long long idx[8]= {1,1,1,0,0,-1,-1,-1};
    long long idy[8]= {1,-1,0,1,-1,-1,0,1};
    void bfs()
    {
        queue <note> qq;
        note t= {w,e,1};
        qq.push(t);
        while(!qq.empty())
    	{
    	    note t1=qq.front();
    	    qq.pop();
    		for(long long i=0; i<8; i++)
    		{
    			long long nx=t1.x+idx[i];
    			long long ny=t1.y+idy[i];
    			if(nx>=0&&nx<n&&ny>=0&&ny<m);
    			{
    			    if(mi[nx][ny]=='1')
    				{
    				    note t2={nx,ny,t1.num+1};
    				    qq.push(t2);
    				    mi[nx][ny]='0';
    				}
    			}
    		}
    	}
    	k++;
    }
    int main()
    {
        cin>>n;
        for(long long i=0; i<n; i++)
    	{
    	    for(long long j=0; j<n; j++)
    		{
    		    cin>>mi[i][j];
    		}
    	}
        for(long long i=0; i<n; i++)
    	{
    	    for(long long j=0; j<n; j++)
    		{
    		    if(mi[i][j]=='1')
    			{
    			    w=i;
    			    e=j; 
    				bfs();
    			}
    		}
    	}
       cout<<k;
    }
    
    • @ 2022-10-6 11:31:04

      温馨提示,语言是C++11

信息

ID
1064
时间
1000ms
内存
128MiB
难度
7
标签
递交数
163
已通过
39
上传者