80分,第三个测试点神一般的WA
查看原帖
80分,第三个测试点神一般的WA
1125645
DyingEncoder楼主2024/10/31 21:33

已开longlong,数组没开小,边界有判断,但是第三个数据WA?

#include<bits/stdc++.h>
using namespace std;
long long dp[21][21];
int x,y,xh,yh;
int dd[10][3]={
{-2,-1},{-2,1},{2,1},{2,-1},{1,2},{1,-2},{-1,2},{-1,-2}
};
int main(){
	dp[0][0]=1;
	cin>>x>>y>>xh>>yh;
	dp[xh][yh]=-1;
	for(int i=0;i<8;i++){
		int dx=xh+dd[i][0];int dy=yh+dd[i][1];
		if(0<=dx&&dx<=x&&0<=dy&&dy<=y){
			dp[dx][dy]=-1;
		}
	}
	for(int i=0;i<=x;i++){
		for(int j=0;j<=y;j++){
			if(dp[i][j]==-1||(i==0&&j==0)){
				continue;
			}else if(i==0||dp[i-1][j]==-1){
				dp[i][j]=dp[i][j-1];
			}else if(j==0||dp[i][j-1]==-1){
				dp[i][j]=dp[i-1][j];
			}else{
				dp[i][j]=dp[i-1][j]+dp[i][j-1];
			}
		}
	}
	if(dp[x][y]==-1){
		cout<<0;
	}else{
		cout<<dp[x][y];
	}
	
	return 0;
}
2024/10/31 21:33
加载中...