help
  • 板块灌水区
  • 楼主_cyh0412_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/7/24 15:54
  • 上次更新2024/7/24 16:00:41
查看原帖
help
731644
_cyh0412_楼主2024/7/24 15:54

题面

代码

#include<bits/stdc++.h>
using namespace std;

const int dx[]={1,0,-1,0};
const int dy[]={0,1,0,-1}; 
const int MAXN=105;
int n,t,cnt;
bool st[MAXN][MAXN],g1[MAXN][MAXN],g2[MAXN][MAXN];

int main()
{
	//freopen("Input.txt","r",stdin);
	//freopen("Output.txt","w",stdout);
	cin>>n;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
		{
			char c;
			cin>>c;
			if (c=='@') g1[i][j]=1;
			else if (c=='#') st[i][j]=1;
		}
	cin>>t;
	t-=1;
	while (t--)
	{
		for (int i=1;i<=n;i++)
			for (int j=1;j<=n;j++)
			{
				if (st[i][j]) continue;
				if (g1[i][j])
					for (int k=0;k<4;k++)
					{
						int xx=i+dx[k],yy=j+dy[k];
						if (xx<1||xx>n||yy<1||yy>n||st[xx][yy]) continue;
						g2[xx][yy]=1;
					}	
			}
		memcpy(g1,g2,sizeof(g1));
	}
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			if (g1[i][j]) cnt++;
	cout<<cnt<<endl;
	return 0;
}
2024/7/24 15:54
加载中...