求hack
查看原帖
求hack
785630
YangXiaopei楼主2023/9/27 17:19

一个逆序的思路:

能否在给出的矩阵上通过将一个点四周全变为‘.’最终变成全‘.’。

只有80分

#include<bits/stdc++.h>
using namespace std;
int n, m;
char a[1005][1005];
int dx[10] = {-1, -1, -1, 0, 0, 1, 1, 1};
int dy[10] = {-1, 0, 1, -1, 1, -1, 0, 1};
int main(){
	cin >> n >> m;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			cin >> a[i][j];
		}
	}
	for(int i = 2; i < n; i++){
		for(int j = 2; j < m; j++){
			for(int k = 0; k < 8; k++){
				int x = i + dx[k];
				int y = j + dy[k];
				a[x][y] = '.';
			}
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(a[i][j] == '#'){
				cout << "NO";
				return 0;
			}
		}
	}
	cout << "YES";
	return 0;
}
2023/9/27 17:19
加载中...