Copa Blue Bridge --- Go Grid (dfs)

Ir cuadrado

Descripción del problema
Hay algunas celosías bidimensionales en el avión. La numeración de estos puntos es como la numeración de una matriz bidimensional, de arriba a abajo desde la 1ª a la enésima fila, de izquierda a derecha desde la 1ª a la mª columna. Cada punto se puede representar mediante un número de fila y un número de columna. Ahora alguien está parado en la fila 1 y la columna 1 y tiene que ir a la fila ny a la columna m. Solo puedes ir hacia la derecha o hacia abajo. Tenga en cuenta que si el número de fila y el número de columna son números pares, no puede ingresar a esta cuadrícula. Pregunte cuántas opciones hay.

Formato de
entrada La línea de entrada contiene dos números enteros n, m.

Formato de
salida Envía un número entero para indicar la respuesta.

Entrada de muestra

3 4

Salida de muestra

2

Entrada de muestra

6 6

Salida de muestra

0

Datos de prueba
Para todos los casos de evaluación, 1 ≤ n ≤ 30, 1 ≤ m ≤ 30.
Idea: ¡dfs, dfs pertenecen a los puntos de conocimiento común de la Blue Bridge Cup! ! !
código:

#include<stdio.h>
#include<string.h> 
#define   INF    99
int ans=0;
int dir[2][2]={
    
    {
    
    0,1},{
    
    1,0}};
int M[INF][INF];
int n,m;

void dfs(int x,int y){
    
    
	if(x<1||y<1||x>m||y>n){
    
    
		return ;
	}
	if(x==m&&y==n){
    
    
		ans++;
	}
	
	for(int i=0;i<2;i++){
    
    
		int xx=x+dir[i][0];
		int yy=y+dir[i][1];
		
		if(xx%2==0&&yy%2==0){
    
    
			continue;
		}
		
		M[xx][yy]=1;
		dfs(xx,yy);
		M[xx][yy]=0;
	}
}

int main(){
    
    
	
	scanf("%d %d",&n,&m);
	memset(M,0,sizeof M);
	dfs(1,1);
	printf("%d",ans);
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/timelessx_x/article/details/115008083
Recomendado
Clasificación