60分,开long long了啊!哪位大佬指点一下
查看原帖
60分,开long long了啊!哪位大佬指点一下
782125
Jasonshan10楼主2023/1/6 18:23
#include <bits/stdc++.h>
using namespace std;
long long dx[8]={2,2,1,1,-1,-1,-2,-2};
long long dy[8]={1,-1,2,-2,2,-2,1,-1};
long long a[21][21]={0};
int main(){
	long long x,y,x2,y2;
	scanf("%lld %lld %lld %lld",&x,&y,&x2,&y2);
	a[x2][y2]=-1;
	for(int i=0;i<8;++i){
		long long tx=x2+dx[i];
		long long ty=y2+dy[i];
		if (tx>=0&&ty>=0&&tx<=x&&ty<=y){
			a[tx][ty]=-1;
		}
	}
	for(int i=0;i<=20;++i){
		if (a[i][0]!=-1){
			a[i][0]=1;
		}
	}
	for(int i=0;i<=20;++i){
		if (a[0][i]!=-1){
			a[0][i]=1;
		}
	}
	for(int i=1;i<=x;++i){
		for(int j=1;j<=y;++j){
			if (a[i][j]!=-1){
				if (a[i-1][j]!=-1){
					a[i][j]=a[i][j]+a[i-1][j];
				}
				if (a[i][j-1]!=-1){
					a[i][j]=a[i][j]+a[i][j-1];
				}
			}
		}
	}
	printf("%lld",a[x][y]);
	return 0; 
}
2023/1/6 18:23
加载中...