000000000
查看原帖
000000000
1342927
binyage楼主2025/1/9 19:21
#include<bits/stdc++.h>
using namespace std;
int  fx[]={0,1,1,-1,-1,2,2,-2,-2},fy[]={0,-2,2,-2,2,-1,1,-1,1};
int bx,by,mx,my; 
int dp[100][100];
bool f[100][100];
int main(){
	cin>>bx>>by>>mx>>my;
	f[mx][my]=1;
	dp[0][0]=1;
	for(int l=1;l<=8;l++)
	{
		int x=mx+fx[l],y=my+fy[l];
		if(x>=0&&x<=bx&&y>=0&&y<=by)
		{
			f[x][y]=1;
		}
	}
	for(int i=0;i<=by;i++)
	{
		for(int j=0;j<=bx;j++)
		{
			if(!f[i][j])
			{
				if(i>0)
				{
					dp[i][j]+=dp[i-1][j];
				}
				if(j>0)
				{
					dp[i][j]+=dp[i][j-1];
				}
				if(i==1&&j==1)
				{
					dp[i][j]--;
				}
			}
		}
	}
	cout<<dp[bx][by];
    return 0;
}
2025/1/9 19:21
加载中...