99我,哪里错了
查看原帖
99我,哪里错了
1399134
xuzhiwen20120305楼主2024/10/2 10:48
#include <bits/stdc++.h>
using namespace std;

bool flag[25][25];
long long dp[25][25];

int main()
{
    long long n,m,x,y;
    cin>>n>>m>>x>>y;
    flag[x][y]=true;
    if(x+2<=n&&y+2<=m) flag[x+2][y+1]=true;
    if(x-2>=n&&y+2<=m) flag[x-2][y+1]=true;
    if(x+2<=n&&y-2<=0) flag[x+2][y-1]=true;
    if(x-2>=n&&y-2<=0) flag[x-2][y-1]=true;
    if(x+1<=n&&y+1<=m) flag[x+1][y+2]=true;
    if(x-1>=n&&y+1<=m) flag[x-1][y+2]=true;
    if(x+1<=n&&y-1<=0) flag[x+1][y-2]=true;
    if(x-1>=n&&y-1<=0) flag[x-1][y-2]=true;
    for(long long i=0;i<=n;i++)
        for(long long j=0;j<=m;j++)
        {
        	if(flag[i][j]) continue;
        	if(!i&&!j) dp[i][j]=1;
        	else if(!i)dp[i][j]=dp[i][j-1];
        	else if(!j)dp[i][j]=dp[i-1][j];
        	else dp[i][j]=dp[i-1][j]+dp[i][j-1];
		}
	cout<<dp[n][m];
	return 0;
}

感谢大老点评,会guanzhu

2024/10/2 10:48
加载中...