0 pts 求调
查看原帖
0 pts 求调
578004
02Ljh楼主2022/5/17 19:37
#include <bits/stdc++.h>
using namespace std;
long long dp[21][21]={0};
int main()
{
	int mn,mm,bn,bm;
	cin>>bn>>bm>>mn>>mm;
	mn--; mm--;
	dp[mn][mm]=-1;
	dp[mn+2][mm+1]=-1;
	if(mm-1>=0)dp[mn+2][mm-1]=-1;
    if(mn-2>=0) dp[mn-2][mm+1]=-1;
	if(mn-2>=0&&mm-1>=0) dp[mn-2][mm-1]=-1;
	dp[mn+1][mm+2]=-1;
	if(mm-2>=0) dp[mn+1][mm-2]=-1;
	if(mn-1>=0) dp[mn-1][mm+2]=-1;
	if(mn-1>=0&&mm-2>=0) dp[mn-1][mm-2]=-1;
	dp[0][1]=dp[1][0]=1;
	/**/for(int i=0;i<max(bn,bm);i++)
	{
		dp[0][i]=1;
		dp[i][0]=1;
	}
	for(int i=1;i<=bn;i++)
	{
		for(int j=1;j<=bm;j++)
		{
			if(dp[i][j]==-1) { continue; }
			dp[i][j]=(dp[i-1][j]==-1?0:dp[i-1][j])+(dp[i][j-1]==-1?0:dp[i][j-1]);
		}
	}
	//cout<<dp[1][1];
	cout<<dp[bm-1][bn-1];
	return 0;
} 
2022/5/17 19:37
加载中...