求调!
查看原帖
求调!
1315459
Ericwer楼主2024/12/1 21:22

40pts

#include<bits/stdc++.h>
using namespace std;
int fx[] = {-1, 1, 2, 2, 1,-1,-2, -2};
int fy[] = {-2,-2,-1, 1, 2, 2, 1, -1};
long long bx, by, mx, my, dp[25][25];
bool q[25][25];
int main(){
	cin >> bx >> by >> mx >> my;
	q[mx][my] = 1;
	for(int i = 0; i < 8; i++) {
		if((mx + fx[i]) >= 0 && (my + fy[i]) >= 0 && (mx + fx[i]) <= bx && (my + fy[i]) <= by){
			q[mx + fx[i]][my + fy[i]] = 1;
			//cout << mx + fx[i] << " " << my + fy[i] << endl;
		}
	}
	dp[0][0] = 1;
	for(int i = 1; i <= by; i++) dp[0][i] = 1;
	for(int i = 1; i <= bx; i++) dp[i][0] = 1;
	for(int i = 1; i <= bx; i++){
		for(int j = 1; j <= by; j++){
			if(q[i][j]) continue;
			dp[i][j] = dp[i-1][j] + dp[i][j-1];
		}
	}
	cout << dp[bx][by];
	return 0; 
}
2024/12/1 21:22
加载中...