对照题解区大佬的代码写了一遍不对
查看原帖
对照题解区大佬的代码写了一遍不对
1050503
bupt_dhh楼主2023/8/22 00:03

新手上路,求助

#include <cstdio>
#define LL long long
LL step[25][25];//dp数组 
bool a[25][25];//判断是否为马的控制点 
int main(){
	int m,n,x,y;//m,n是马的坐标,x,y是B点坐标 
	scanf("%d %d %d %d",&x,&y,&m,&n);
	step[2][2]=1;//原点设置为1 
	m+=2;
	n+=2;
	x+=2;
	y+=2;
	a[m-2][n-1]=1;
	a[m-1][n-2]=1;
	a[m+1][n-2]=1;
	a[m+1][n+2]=1;
	a[m+2][n+1]=1;
	a[m-1][n+2]=1;
	a[m-2][n+1]=1;
	a[m+2][n-1]=1;
	a[m][n]=1;
	int i,j;
	for(i=2;i<=x;i++){
		for(j=2;j<=y;j++)
			if((i!=2||j!=2)&&!a[i][j])	step[i][j]=step[i-1][j]+step[i][j-1];//状态转移方程 
	}
	printf("%lld",step[m][n]);
	return 0;
}
2023/8/22 00:03
加载中...