sitio de Certificación CSP papelera de reciclaje (C ++)

número de la pregunta: 201912-2
Preguntas Nombre: ubicación de basura
Plazo: 1.0s
Límite de memoria: 512.0MB

Título: perezosa .... sin acondicionar

Ideas de resolución de problemas: una simple lata de simulación

Resolver Precauciones: ① Desde la coordenada hay números negativos, por lo que escribir una estructura de almacenamiento;

② Como el número de coordenadas en la muestra hasta tres meses 10, así que la tienda puede ser atravesada directamente, en lugar de utilizar una matriz de problemas de dos dimensiones, la memoria súper será también no almacenar números negativos;

③ antes de buscar la función de la puntuación, con un si (find (x + 1, y + 1, sitio) || encontrar (x + 1, y-1, sitio) || encontrar (x-1, y + 1 , sitio) || encontrar (x-1, y-1, sitio)) puntuación ++; 1 ha sido tal que la puntuación.

El código correcto es el siguiente:

#include<bits/stdc++.h>
using namespace std;
int n = 0;
struct Site{
	int x;
	int y;
};

bool find(int x, int y, Site site[]){
	for(int i = 0; i < n; i++){
		if(site[i].x == x && site[i].y == y) return true;
	}
	return false;
}

bool SetTrashCan(int x,int y,Site site[]){   // 判断该位置是否可以设置垃圾桶 
	if(find(x,y+1,site) && find(x,y-1,site) && find(x+1,y,site) &&find(x-1,y,site)) return true;
	else return false;
}

int GetScore(int x,int y,Site site[]){
	int score = 0;
	if(find(x+1,y+1,site)) score++;
	if(find(x-1,y-1,site)) score++;
	if(find(x+1,y-1,site)) score++;
	if(find(x-1,y+1,site)) score++;	
	return score;
} 

int main(){
	scanf("%d",&n);
	Site site[n];
	int grade[5] ={0};
	for(int i = 0; i < n; i++){
		scanf("%d %d",&site[i].x,&site[i].y);
	}
	for(int i = 0; i < n; i++){
		int x = site[i].x;
		int y = site[i].y;
		if(SetTrashCan(x,y,site)){
			grade[GetScore(x,y,site)]++;
//			printf("%d %d %d\n",x,y,GetScore(x,y,site));
		} 
	} 
	for(int i = 0; i < 5; i++){
		printf("%d\n",grade[i]);
	}
} 
// 测试样例(答案在题目中)
//7
//1 2
//2 1
//0 0
//1 1
//1 0
//2 0
//0 1

//11
//9 10
//10 10
//11 10
//12 10
//13 10
//11 9
//11 8
//12 9
//10 9
//10 11
//12 11

 

Publicado 32 artículos originales · ganado elogios 2 · Vistas 1610

Supongo que te gusta

Origin blog.csdn.net/qq_38969094/article/details/104485789
Recomendado
Clasificación