1 条题解
-
3
纯暴力
#include<iostream> #include<queue> #include<stack> #include<math.h> #include<string.h> using namespace std; char map[60][60]; int n,m; void bfs(int b,int a){ if(map[b][a]=='*'&&map[b+1][a]=='*'&&map[b+1][a+1]=='*'&&map[b-1][a]!='*'&&map[b-1][a+1]!='*'&&map[b-1][a-1]!='*'&&map[b][a-1]!='*'&&map[b][a+1]!='*'&&map[b][a+2]!='*'&&map[b+1][a-1]!='*'&&map[b+1][a+2]!='*'&&map[b+2][a]!='*'&&map[b+2][a-1]!='*'&&map[b+2][a+1]!='*'&&map[b+2][a+2]!='*'){ map[b][a]='.'; map[b+1][a]='.'; map[b+1][a+1]='.'; }else if(map[b][a]=='*'&&map[b][a+1]=='*'&&map[b+1][a+1]=='*'&&map[b-1][a-1]!='*'&&map[b-1][a]!='*'&&map[b-1][a+1]!='*'&&map[b][a+2]!='*'&&map[b][a-1]!='*'&&map[b][a+2]!='*'&&map[b+1][a]!='*'&&map[b+1][a-1]!='*'&&map[b+1][a+2]!='*'&&map[b+2][a]!='*'&&map[b+2][a+1]!='*'&&map[b+2][a+2]!='*'){ map[b][a]='.'; map[b][a+1]='.'; map[b+1][a+1]='.'; }else if(map[b][a]=='*'&&map[b+1][a]=='*'&&map[b+1][a-1]=='*'&&map[b-1][a]!='*'&&map[b-1][a-1]!='*'&&map[b-1][a+1]!='*'&&map[b][a-2]!='*'&&map[b][a-1]!='*'&&map[b][a+1]!='*'&&map[b+1][a-2]!='*'&&map[b+1][a+1]!='*'&&map[b+2][a]!='*'&&map[b+2][a-1]!='*'&&map[b+2][a-2]!='*'&&map[b+2][a+1]!='*'){ map[b][a]='.'; map[b+1][a]='.'; map[b+1][a-1]='.'; }else if(map[b][a]=='*'&&map[b][a+1]=='*'&&map[b+1][a]=='*'&&map[b-1][a]!='*'&&map[b-1][a-1]!='*'&&map[b-1][a+2]!='*'&&map[b-1][a+1]!='*'&&map[b][a-1]!='*'&&map[b][a+2]!='*'&&map[b+1][a-1]!='*'&&map[b+1][a+1]!='*'&&map[b+1][a+2]!='*'&&map[b+2][a]!='*'&&map[b+2][a+1]!='*'&&map[b+2][a-1]!='*'){ map[b][a]='.'; map[b][a+1]='.'; map[b+1][a]='.'; } } int main(){ int t; scanf("%d", &t); while(t--){ memset(map,0,sizeof(map)); int temp=1; scanf("%d %d", &n, &m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>map[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(map[i][j]=='*'){ bfs(i,j); } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(map[i][j]=='*'){ temp=0; } } } if(temp==0){ printf("NO\n"); }else{ printf("YES\n"); } } }
- 1
信息
- ID
- 821
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 82
- 已通过
- 17
- 上传者