为什么暴力过不了?求助大佬!
查看原帖
为什么暴力过不了?求助大佬!
800751
acmwriter楼主2022/11/30 16:18
#include<stdio.h>
int main()
{
    int a[50][50],n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
        	if(a[i][j]==1&&a[i-1][j]==0)
        		a[i-1][j]=2;
        	if(a[i][j]==1&&a[i+1][j]==0)
        		a[i+1][j]=2;	
			if(a[i][j]==1&&a[i][j-1]==0)
			    a[i][j-1]=2;
			if(a[i][j]==1&&a[i][j+1]==0)
				a[i][j+1]=2;
            if(a[i][j]==1&&a[i][j+1]==1&&a[i+1][j]==1&&a[i+1][j+1]==0)
            a[i+1][j+1]=2;
            if(a[i][j]==1&&a[i][j+1]==1&&a[i-1][j]==1&&a[i-1][j+1]==0)
            a[i-1][j+1]=2;
            if(a[i][j]==1&&a[i][j-1]==1&&a[i+1][j]==1&&a[i+1][j-1]==0)
            a[i+1][j-1]=2;
            if(a[i][j]==1&&a[i-1][j]==1&&a[i][j-1]==1&&a[i-1][j-1]==0)
            a[i-1][j-1]=2;
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i-1][j]==2&&a[i+1][j]==2&&a[i][j+1]==2&&a[i][j-1]==2)
            a[i][j]=2;
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i][j]==0&&a[i-1][j]==2)
            a[i-1][j]=0;
            if(a[i][j]==0&&a[i+1][j]==2)
            a[i+1][j]=0;
            if(a[i][j]==0&&a[i][j+1]==2)
            a[i][j+1]=0;
            if(a[i][j]==0&&a[i][j-1]==2)
            a[i][j-1]=0;
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(j<n-1)
            printf("%d ",a[i][j]);
            else
            printf("%d",a[i][j]);
        }
        printf("\n"); 
    }
}
2022/11/30 16:18
加载中...