PAT B10.68 Millones de arbustos verdes un poco rojos (20 puntos)

Inserte la descripción de la imagen aquí
Hay muchos puntos en esta pregunta. En primer lugar, tenga en cuenta que el píxel requerido debe ser el único que aparece. Puede usar el mapa para registrar el número de veces que aparece cada píxel de entrada. Luego, los píxeles en el círculo del lado también deben ser juzgados (el título dice claramente que hay 8 píxeles alrededor, pensé que el círculo del lado no se cuenta), puede aumentar la fila y la columna de la matriz de píxeles por 1 y asígnelo a -tol -1 para lograrlo (consulte el código para obtener más detalles).

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <map>
using namespace std;

int m, n, tol;
int MIN = -tol-1;

int gap(int a, int b){
    
    
	return abs(a-b);
}

int main(){
    
    
	map<int,int> time;
	scanf("%d %d %d", &m, &n, &tol);
	
	int arr[n+2][m+2];
	fill(arr[0], arr[0]+(n+2)*(m+2), MIN);
	int num = 0;
	int row, col, res;
	bool flag[n+1][m+1] = {
    
    false};
	for(int i=1; i<=n; i++){
    
    
		for(int j=1; j<=m; j++){
    
    
			scanf("%d", &arr[i][j]);
			time[arr[i][j]]++;
		}
	}
	
	int t, t1, t2, t3, t4, t5, t6, t7, t8;
	for(int i=1; i<=n; i++){
    
    
		for(int j=1; j<=m; j++){
    
    
			t = arr[i][j];
			t1 = arr[i-1][j-1];
			t2 = arr[i-1][j];
			t3 = arr[i-1][j+1];
			t4 = arr[i][j+1];
			t5 = arr[i+1][j+1];
			t6 = arr[i+1][j];
			t7 = arr[i+1][j-1];
			t8 = arr[i][j-1];
			if(gap(t,t1)>tol && gap(t,t2)>tol && gap(t,t2)>tol && gap(t,t3)>tol && gap(t,t4)>tol && gap(t,t5)>tol && gap(t,t6)>tol && gap(t,t7)>tol && gap(t,t8)>tol){
    
    
				flag[i][j] = true;
			}
		}
	}
	for(int i=1; i<=n; i++){
    
    
		for(int j=1; j<=m; j++){
    
    
			if(flag[i][j]){
    
    
				if(time[arr[i][j]] == 1){
    
    
					num++;
					row = i;
					col = j;
					res = arr[i][j];
				}
			}
		}
	}
	if(num == 0){
    
    
		printf("Not Exist");
	}else if(num > 1){
    
    
		printf("Not Unique");
	}else{
    
    
		printf("(%d, %d): %d", col, row, res);
	}
	
	return 0;
} 

Supongo que te gusta

Origin blog.csdn.net/weixin_45964844/article/details/113852129
Recomendado
Clasificación