大佬(0分)
查看原帖
大佬(0分)
705729
count_year楼主2023/10/19 16:56
#include<bits/stdc++.h>
using namespace std;
long long dp[101][101],n,m,x,y;
bool a[101][101];
int ax[]={1,1,-1,-1,2,2,-2,-2};
int ay[]={2,-2,2,-2,-1,1,-1,1};
void k(){
	a[x][y]=2;
	for(int i=1;i<=8;i++){
		int sx=x+ax[i];
		int sy=y+ay[i];
		if(sx<0||sx>n||sy<0||sy>m){
			continue;
		}
		a[sx][sy]=1;
	}
}
int main(){
	scanf("%lld%lld%lld%lld",&n,&m,&x,&y);
	k();
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			dp[i][j]=0;
			if(!a[i][j]){
				if(i==0&&j==0){
					dp[i][j]=1;
				}else if(i==0){
					dp[i][j]=dp[i][j-1];
					continue;
				}else if(j==0){
					dp[i][j]=dp[i-1][j];
					continue;
				}else{
					dp[i][j]=dp[i-1][j]+dp[i][j-1];
				}
			}
		}
	}
	cout<<dp[n][m];
    return 0;
}

2023/10/19 16:56
加载中...