过河过河,求船
查看原帖
过河过河,求船
313616
Gsmdog_H楼主2020/10/3 08:02

总是多一个(完美的错过了正确答案

#include"iostream"
#include"cstdio"
using namespace std;
int f[50][50] , nmd[8][2] = {(-2 , -1) , (-1 , 1) , (-1 , -2),
							 (-1 , 2) , (1 , -2) , (1 , 2),
							 (2 , 1) , (2 , -1)};
bool flag[500][500];
int main(){
	int x , y , bx , by;
	
	cin >> bx >> by >> x >> y;
	bx ++ ; by ++ ; x ++ ; y ++ ;
	
	flag[x][y] = true;
	for(int i = 0 ; i < 8 ; ++i){
		if (x + nmd[i][0] >= 0 and x + nmd[i][0] <= bx and 
			y + nmd[i][1] >= 0 and y + nmd [i][1] <= by)
				flag[x+nmd[i][0]][y+nmd[i][1]] = true;
	
	}
	
	f[1][1] = 1;
	for(int i = 1 ; i <= bx ;++i){
		for(int j = 2; j <= by ;++j){
			
			if(flag[i][j] == true)
				continue;
			else 
				f[i][j] = f[i-1][j] + f[i][j-1];
		}
	}
	
	printf("%d" , f[bx][by]);
	
	return 0;
}
2020/10/3 08:02
加载中...