这哪错了,只有40分。请各位dalao求助!!!//P1002 过河卒
  • 板块灌水区
  • 楼主liangsefengjing
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/27 20:33
  • 上次更新2024/4/27 22:05:25
查看原帖
这哪错了,只有40分。请各位dalao求助!!!//P1002 过河卒
1125914
liangsefengjing楼主2024/4/27 20:33
#include<bits/stdc++.h>
using namespace std;
long long a[201][201];
int main()
{
	int n,m,x,y;
	cin>>n>>m;
	cin>>x>>y;
	for(int i=0;i<=n;i++){
		a[i][0]=1;
		a[0][i]=1;
	}
	a[x][y]=-1;

	if(y-2>=0){
		if(x+2<=20)a[x+2][y-1]=a[x+1][y-2]=-1;
		else if(x+1<=20)a[x+1][y-2]=-1;
		
		if(x-2>=0)a[x-2][y-1]=a[x-1][y-2]=-1;
		else if(x-1>=0)a[x-1][y-2]=-1;
	}
	else if(y-1>=0){
		if(x+2<=20)a[x+2][y-1]=-1;
		if(x-2>=0)a[x-2][y-1]=-1;
	}
	if(y+2<=20){
		if(x+2<=20)a[x+2][y+1]=a[x+1][y+2]=-1;
		else if(x+1<=20)a[x+1][y+2]=-1;
		
		if(x-2>=0)a[x-2][y+1]=a[x-1][y+2]=-1;
		else if(x-1>=0)a[x-1][y+2]=-1;
	}
	else if(y+1<=20){
		if(x+2<=20)a[x+2][y+1]=-1;
		if(x-2>=0)a[x-2][y+1]=-1;
	}
	
	
	int i=0,j=0;
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			if(a[i][j]==-1)a[i][j]=0;
			else if(i!=0&&j!=0){
				a[i][j]=a[i-1][j]+a[i][j-1];
			}
				 
		}
	}
	/*
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	*/
	printf("%d",a[n][m]);
	return 0;
}

2024/4/27 20:33
加载中...