社区讨论
求助 RE on 92
CF525D Arthur and Walls参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @loc84n6z
- 此快照首次捕获于
- 2023/10/30 09:31 2 年前
- 此快照最后确认于
- 2023/11/04 21:09 2 年前
看了之前的讨论区,说开 ll 会递归爆空间,然后我就全开了 int,结果还是 RE on 92 /yun
但感觉这份代码已经没啥可卡的地方了啊 /yun
CPP#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define up(i,x,y) for(int i=x,i##end=y;i<=i##end;++i)
#define down(i,x,y) for(int i=x,i##end=y;i>=i##end;--i)
using namespace std;
int n, m, k;
int read()
{
int s = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
s = s * 10 + ch - '0';
ch = getchar();
}
return s * f;
}
char c[2002][2002];
int dx[8]={0,1,1,1,0,-1,-1,-1},dy[8]={1,1,0,-1,-1,-1,0,1};
void dfs(int x,int y)
{
if(x<1||x>n||y<1||y>m||c[x][y]!='*')return;
if((c[x-1][y]=='.'&&c[x][y-1]=='.'&&c[x-1][y-1]=='.')
||(c[x+1][y]=='.'&&c[x][y+1]=='.'&&c[x+1][y+1]=='.')
||(c[x-1][y]=='.'&&c[x][y+1]=='.'&&c[x-1][y+1]=='.')
||(c[x+1][y]=='.'&&c[x][y-1]=='.'&&c[x+1][y-1]=='.'))
{
c[x][y]='.';
up(i,0,7)dfs(x+dx[i],y+dy[i]);
}
else return;
}
signed main()
{
n=read(),m=read();
up(i,1,n)cin>>(c[i]+1);
up(i,1,n)
{
up(j,1,m)if(c[i][j]=='*')dfs(i,j);
}
up(i,1,n)
{
cout<<(c[i]+1)<<'\n';
}//
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...