奇怪的方法
查看原帖
奇怪的方法
591573
wushiquchengxi楼主2022/3/12 09:59
#include<bits/stdc++.h>
using namespace std;
int a[34][34];
bool add[34][34];
bool dda[34][34];
int main()
{
	int n,i,j;
	cin>>n;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		{
			cin>>a[i][j];
			add[i][j]=a[i][j];
			dda[i][j]=a[i][j];
		}
	for(i=1;i<=n;i++)//从左上到右下
	{
		for(j=1;j<=n;j++)
		{
			if(add[i-1][j-1]&&add[i-1][j]&&add[i][j-1])
			{
				add[i][j]=1;
			}
		}
	}
	for(i=n;i>=1;i--)//从右下到左上
	{
		for(j=n;j>=1;j--)
		{
			if(dda[i+1][j+1]&&dda[i+1][j]&&dda[i][j+1])
			{
				dda[i][j]=1;
			}
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(add[i][j]&&dda[i][j]&&!(a[i][j]==1))//重叠部分
			{
				a[i][j]=2;
			}
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
}
2022/3/12 09:59
加载中...