60pts求助,#3#4WA
查看原帖
60pts求助,#3#4WA
817450
Calarence4楼主2023/10/18 12:56

求大佬调orz

int Bx,By,Hx,Hy;
long long dp[25][25];
int dx[9]={0,+1,+2,+2,+1,-1,-2,-2,-1};
int dy[9]={0,+2,+1,-1,-2,-2,-1,+1,+2};
bool m[25][25];


int main(){
	memset(m,true,sizeof(m));
	memset(dp,0,sizeof(dp));
	cin>>Bx>>By>>Hx>>Hy;
	Bx++,By++,Hx++,Hy++;
	int Mx=max(Bx,Hx)+2,My=max(By,Hy)+2;//防止马的控制点丢失
	for(int i=0;i<9;i++){
		m[Hx+dx[i]][Hy+dy[i]]=false;
	}
	for(int i=1;i<=Bx;i++){
		if(m[i][1]){
			dp[i][1]=1;
        }
	}
	for(int j=1;j<=By;j++){
        if(m[1][j]){
			dp[1][j]=1;
        }
	}
	
	
	
	for(int i=2;i<=Bx;i++){
		for(int j=2;j<=By;j++){
			if(!m[i][j]){
				continue;
			}
			dp[i][j]=dp[i-1][j]+dp[i][j-1];
		}
	}
	
	
	cout<<dp[Bx][By]<<"\n";
	return 0;
}
2023/10/18 12:56
加载中...