三四点WA求救
查看原帖
三四点WA求救
506896
EsAvicii楼主2021/9/29 20:19

求救各位大佬

本蒟蒻代码三四点WA 求各位dalao帮忙看一下 救救蒟蒻

#include<bits/stdc++.h>
#define MAXN 21
using namespace std;
int chessboard[MAXN][MAXN] = {0};
int n,m,x,y;
int dx[8] = {-2,-1,1,2,2,1,-1,-2};
int dy[8] = {1,2,2,1,-1,-2,-2,-1};
void horse()
{
	int i;
	chessboard[x][y]=-1;
	for(i=0;i<8;i++)
	{
		if((x+dx[i]>=0&& x+dx[x]<=n)&&(y+dy[i]>=0)&&(y+dy[i])<=m)
		{
			chessboard[x+dx[i]][y+dy[i]]=-1;
		}
	}
}
void search()
{
	int i,j;
	for(i=0;i<=n;i++)
	{
		if(chessboard[i][0]!=-1)
		{
			chessboard[i][0] = 1;
		}
		else
		{
			break;
		}
	}
	for(i=0;i<=m;i++)
	{
		if(chessboard[0][i]!=-1)
		{
			chessboard[0][i] = 1;
		}
		else
		{
			break;
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			if(chessboard[i][j]!=-1)
			{
				if((chessboard[i-1][j]!=-1)&&(chessboard[i][j-1]!=-1))
				//上面和左面也不是马的控制点 
				{
					chessboard[i][j]=chessboard[i-1][j]+chessboard[i][j-1];
				}
				if((chessboard[i-1][j]==-1)&&(chessboard[i][j-1]!=-1))
				//上面有马的控制点 左边无马的控制点 
				{
					chessboard[i][j]=chessboard[i][j-1];
				}
				if((chessboard[i-1][j]!=-1)&&(chessboard[i][j-1]==-1))
				//上面无马的控制点 左边有马的控制点 
				{
					chessboard[i][j]=chessboard[i-1][j];
				}
				if((chessboard[i-1][j]==-1)&&(chessboard[i][j-1]==-1))
				//上面有马的控制点 左边有马的控制点 
				{
					chessboard[i][j]=0;
					//没有通路 
				}
			}
		}
	}
}
int main()
{
	int i,j;
	cin>>n>>m>>x>>y;
	horse();
	search();
	cout<<chessboard[n][m];
    return 0;
}
2021/9/29 20:19
加载中...