2 条题解

  • 0
    @ 2021-11-21 16:30:23

    #include<iostream>
    using namespace std;
    const int N=101;
    int n,m,a[N][N],ans;
    void sb(int x,int y)
    {
    if(a[x][y]==0)
    {
    return;
    }
    a[x][y]=0;
    sb(x+1,y);
    sb(x-1,y);
    sb(x,y+1);
    sb(x,y-1);
    }
    int main()
    {
    cin>>n>>m;
    char hhh;
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=m;j++)
    {
    cin>>hhh;
    hhh++;
    if(hhh>'0')
    {
    a[i][j]=1;
    }
    else
    {
    a[i][j]=0;
    }
    }
    }
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=m;j++)
    {
    if(a[i][j]==1)
    {
    sb(i,j);
    ans++;
    }
    }
    }
    cout<<ans;
    return 0;//只能说是不伦不类
    }

  • 0
    @ 2018-05-19 16:11:44

    #include<bits/stdc++.h>
    using namespace std;
    int dx[4]={-1,0,1,0},
    dy[4]={0,1,0,-1};
    int bz[100][100],num=0,n,m;
    void doit(int p,int q)
    {
    int x,y,t,w,i;
    int h[1000][2];
    num++;
    bz[p][q]=0;
    t=0;
    w=1;
    h[1][1]=p;
    h[1][2]=q;
    do
    {
    t++;
    for(i=0;i<=3;i++)
    {
    x=h[t][1]+dx[i];
    y=h[t][2]+dy[i];
    if((x>=0)&&(x<m)&&(y>=0)&&(y<0)&&(bz[x][y]))
    {
    w++;
    h[w][1]=x;
    h[w][2]=y;
    bz[x][y]=0;
    }
    }
    }while(t<w);
    }
    int main()
    {
    int i,j;
    char s[100],ch;
    scanf("%d%d\n",&m,&n);
    for(i=0;i<=m-1;i++)
    {
    for(j=0;j<=n-1;j++)
    {
    if(s[j]=='0')
    {
    bz[i][j]=0;
    }
    }
    }
    for(i=0;i<=m-1;i++)
    {
    for(j=0;j<=n-1;j++)
    {
    if(bz[i][j])
    {
    doit(i,j);
    }
    }
    }
    printf("NUMBER of cells=%d",num);
    return 0;
    }

  • 1

信息

难度
4
分类
(无)
标签
递交数
74
已通过
31
通过率
42%
上传者