蒟蒻萌新WA两个点60求助!!!递推/递归
查看原帖
蒟蒻萌新WA两个点60求助!!!递推/递归
446410
writer楼主2022/7/16 12:47
#include <bits/stdc++.h>
using namespace std;
long long f[25][25],n,m,mx,my;
int main()
{
	cin>>n>>m>>mx>>my;
	f[0][0]=0;
	for(int i=1;i<=n;i++)
	{
		f[i][0]=1;
	}
	for(int i=1;i<=m;i++)
	{
		f[0][i]=1;
	}
	f[mx][my]=-1;
	if(mx+1>=0&&my-2>=0)
		f[mx+1][my-2]=-1;
	if(mx+1>=0&&my+2>=0)
		f[mx+1][my+2]=-1;
	if(mx+2>=0&&my-1>=0)
		f[mx+2][my-1]=-1;
	if(mx+2>=0&&my+1>=0)
		f[mx+2][my+1]=-1;
	if(mx-1>=0&&my+2>=0)
		f[mx-1][my+2]=-1;
	if(mx-1>=0&&my-2>=0)	
		f[mx-1][my-2]=-1;
	if(mx-2>=0&&my+1>=0)
		f[mx-2][my+1]=-1;
	if(mx-2>=0&&my-1>=0)
		f[mx-2][my-1]=-1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			if(f[i][j]==-1)
				continue;
			if(f[i-1][j]==-1&&f[i][j-1]==-1) 
				f[i][j]=-1;
			else if(f[i-1][j]==-1)
				f[i][j]=f[i][j-1];
			else if(f[i][j-1]==-1) 
				f[i][j]=f[i-1][j];
			else
				f[i][j]=f[i-1][j]+f[i][j-1];
		}
	cout<<f[n][m];
	return 0;
}
2022/7/16 12:47
加载中...