80分求助
查看原帖
80分求助
787505
shi_jing_yu_ni楼主2024/11/30 14:28
#include<iostream>
using namespace std;
int main()
{
	long long bx,by,hx,hy,dx[8]={-1,-2,-2,-1,1,2,2,1},dy[8]={-2,-1,1,2,2,1,-1,-2};
	long long i,j,k[25][25]={1};//k[i][j]第i行,第j列 方案数 
	cin>>bx>>by>>hx>>hy;
	k[hx][hy]=-1;
	for(i=0;i<=7;i++)
		k[hx+dx[i]][hy+dy[i]]=-1;
	for(i=0;i<=by;i++)
	{
		if(k[0][i]==-1)
			break;
		else
			k[0][i]=1;
	}
	for(i=0;i<=bx;i++)
	{
		if(k[i][0]==-1)
			break;
		else
			k[i][0]=1;
	}
	for(i=1;i<=bx;i++)
		for(j=1;j<=by;j++)
		{
			if(k[i][j]!=-1)
				{
					if(k[i-1][j]!=-1)
						k[i][j]+=k[i-1][j];
					if(k[i][j-1]!=-1)
						k[i][j]+=k[i][j-1];
				}
		}
	if(k[bx][by]!=-1)
	cout<<k[bx][by];
	else
	cout<<0;
}
2024/11/30 14:28
加载中...