全RE,求调
查看原帖
全RE,求调
963367
wang18855638276楼主2024/11/10 09:10

自己试的样例都是对的,进去就RE了

#include<bits/stdc++.h>
using namespace std;
const int px[9]={0,1,2,2,1,-1,-2,-2,-1};
const int py[9]={0,-2,-1,1,2,2,1,-1,-2};
int n,m,xm,ym,a[25][25];
long long sum,as[2][25];
int main(){
	cin>>n>>m>>xm>>ym;
	for(int i=1;i<=9;i++){
		if(xm+px[i]>=0&&ym+py[i]>=0)
		  a[xm+px[i]+2][ym+py[i]+2]=1;
	} 
	as[0][2]=1;
	for(int i=2;i<=n+2;i++){
		for(int j=2;j<=m+2;j++){
			if(i==2&&j==2){continue;}
			if(a[i][j]==1){as[i&1][j]=0;continue;}
			as[i&1][j]=as[(i-1)&1][j]+as[i&1][j-1];
		}
	}
	cout<<as[(n+2)&1][m+2];
	return 0;
} 

重写了,换了简单一点的,但是还是RE

#include<bits/stdc++.h>
using namespace std;
const int px[9]={0,1,2,2,1,-1,-2,-2,-1};
const int py[9]={0,-2,-1,1,2,2,1,-1,-2};
long long n,m,xm,ym,a[25][25],ma[25][25];
int main(){
	cin>>n>>m>>xm>>ym;
	for(int i=1;i<=9;i++){
		int ax=xm+px[i],bx=ym+py[i];
		if(ax<0||bx<0)continue;
		ma[ax][bx]=-1; 
	}
	a[0][0]=1;
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			if(i==0&&j==0)continue;
			if(ma[i][j]==-1)continue;
			if(i==0){
				a[i][j]=a[i][j-1];
				continue;
			}
			if(j==0){
				a[i][j]=a[i-1][j];
				continue;
			}
			a[i][j]=a[i-1][j]+a[i][j-1];
		}
	}
	cout<<a[n][m];
	return 0;
}
2024/11/10 09:10
加载中...