64分蒟蒻求助
查看原帖
64分蒟蒻求助
330672
云深时见d码楼主2020/11/29 19:56
#include<bits/stdc++.h> 
using namespace std;
bool vis;
int b[100][100];
int main()
{
	int n,ex=0,ey=0;
	cin>>n;
	int a[100][100];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cin>>a[i][j];
	} 		
	for(int i=1;i<=n;i++)
	{
		if(a[i][n]==0)
		{
			for(int j=n;j>=0;j--)
			{
				if(a[i][j]==0) b[i][j]=2;
				else if(a[i][j]==1) break;
			}
		}
		
	}
	for(int i=1;i<=n;i++)
	{
		if(a[i][1]==0)
		{
			for(int j=1;j<=n;j--)
			{
				if(a[i][j]==0) b[i][j]=2;
				if(a[i][j]==1) break;
			}
		}
		
	}
	for(int i=1;i<=n;i++)
	{ 
		vis=0;
		for(int j=1;j<=n;j++)
		{
			if(a[j][i]==1) vis=1;
			else if(vis==1&&a[j][i]==0&&b[j][i]!=2) b[j][i]=1;
			else if(vis==1&&a[j][i]==1) vis=0;
			int bb=j;
			while(bb<n+1)
			{
				if(vis==1&&a[bb][i]==1) break;
				if(bb==n&&vis==1)   
				{
					for(int i1=1;i1<=n;i1++)
					{
						for(int j1=1;j1<n;j1++)
						b[i1][j1]=0;
					}
				}  
				bb++;
		
			}
			
			for(int maxn=1;maxn<=n;maxn++)
			{
				for(int minn=1;minn<=n;minn++)
				{
					if(b[minn][maxn]==1)
					a[minn][maxn]=2;
				}
			}
		} 
		
	} 
	cout<<endl;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cout<<a[i][j]<<" ";
		cout<<endl;
	} 	
	return 0;
}

我加了筛多余0的筛子但是一会筛一会不筛

2020/11/29 19:56
加载中...