2017 Blue Bridge Cup Maze (dfs)

Un laberinto de juegos en el Planeta X está construido en una ladera.
Se compone de 10x10 habitaciones pequeñas interconectadas.

Una carta grande estaba escrita en el piso de la habitación.
Suponemos que el jugador está parado mirando hacia arriba, entonces:
L significa caminar hacia la habitación izquierda,
R significa caminar hacia la habitación derecha,
U significa caminar cuesta arriba y
D significa caminar cuesta abajo.

Los habitantes del Planeta X son un poco vagos y no están dispuestos a pensar mucho.
Prefieren jugar juegos de suerte. ¡Lo mismo es cierto para este juego!

Al principio, el helicóptero puso a 100 jugadores en una pequeña habitación.
Los jugadores deben moverse de acuerdo con las letras en el suelo.

El mapa del laberinto es el siguiente:
------------
UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR
------------

Calcula, al final, ¿cuántos jugadores saldrán del laberinto? 
En lugar de dar vueltas en círculos.

 

Tenga en cuenta el valor de retorno del operador después de la sobrecarga.

Respuestas a esta pregunta 31

#include<bits/stdc++.h>


char maze[10][10];

int vis[10][10];
struct walk{
	int a,b;
	walk operator +(const walk& rh)const{
		walk s{0,0};
		s.a=this->a+rh.a;
		s.b=this->b+rh.b;
		return s;
	}
};

walk to_digit(char a){
	if(a=='L')
	return (walk){0,-1};
	if(a=='R')
	return (walk){0,1};
	if(a=='U')
	return (walk){-1,0};
	if(a=='D')
	return (walk){1,0};
}

bool dfs(walk &it){
	while(1){
		if(vis[it.a][it.b]==1)
		return false;
	
		vis[it.a][it.b]=1;
		it=it+to_digit(maze[it.a][it.b]);
  		
		if(it.a>9 || it.b>9 || it.a<0 || it.b<0) 
		return true;
    }
}



int main(){
	for(int i=0;i<10;i++)
	scanf("%s",maze[i]);
	int ans=0;
	int i,j;
	for(i=0;i<10;i++)
		for( j=0;j<10;j++){
		memset(vis,0,sizeof(vis));
		walk p{i,j};
		if(dfs(p))
		ans++;
		}		
	printf("%d",ans);
		
}


 

Publicado 75 artículos originales · elogiado 77 · vistas 4017

Supongo que te gusta

Origin blog.csdn.net/weixin_43568895/article/details/104878671
Recomendado
Clasificación