社区讨论

50求助

P1605迷宫参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m4pa8qnq
此快照首次捕获于
2024/12/15 15:26
去年
此快照最后确认于
2024/12/15 18:25
去年
查看原帖
CPP
#include <bits/stdc++.h>

using namespace std ;

long long n , m , t , w , zdx , zdy , chx , chy , zx , zy ;

long long dx[4] { 1 , 0 , -1 , 0 } , dy[4] { 0 , 1 , 0 , -1 } ;

long long dt[15][15] ;

bool b[15][15] ;

struct wz {
	
	long long x ;
	
	long long y ;
	
} ;

wz xyb , chs ;

bool in ( long long xx , long long yy ) {
	
	return xx >= 1 && xx <= n && yy >= 1 && yy <= m ;
	
}

void dfs ( wz xz ) {
	
	if ( xz.x == zdx && xz.y == zdy ) {
		
		w++ ;
		
		return ;
		
	}
	
	for ( int i = 0 ; i < 4 ; i++ ) {
		
		xyb.x = xz.x + dx[i] ;
		
		xyb.y = xz.y + dy[i] ;
		
		if ( in( xyb.x , xyb.y ) && dt[xyb.x][xyb.y] == 0 && b[xyb.x][xyb.y] == 0 ) {
			
			b[xyb.x][xyb.y] = 1 ;
			
			dfs(xyb) ;
			
			b[xyb.x][xyb.y] = 0 ;
			
		}
		
	}
	
	return ;
	
}

int main () {
	
	ios::sync_with_stdio(0) ;
	
	cin.tie(0) ;
	
	cout.tie(0) ;
	
	cin >> n >> m >> t ;
	
	cin >> chx >> chy >> zdx >> zdy ;
	
	for ( int i = 1 ; i <= t ; i++ ) {
		
		cin >> zx >> zy ;
		
		dt[zx][zy] = 1 ;
		
	}
	
	b[chx][chy] = 1 ;
	
	chs.x = chx ; 
	
	chs.y = chy ;
	
	dfs(chs) ;
	
	cout << w ;
	
	return 0 ;
	
}

回复

2 条回复,欢迎继续交流。

正在加载回复...