虽然过了,但还是想知道原来的代码有什么问题
查看原帖
虽然过了,但还是想知道原来的代码有什么问题
1329138
luogu_hezhenmin1楼主2024/10/4 14:07

rt

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
int n,m,x,y;
ll dp[32][32];
bool vis[32][32];
int dx[9]={0,-2,-1,1,2,2,1,-1,-2};
int dy[9]={0,1,2,2,1,-1,-2,-2,-1};
int main(){
	cin>>n>>m;
	cin>>x>>y;
	vis[x][y]=1;
	for(int i=1;i<=8;++i){
		int nx=x+dx[i],ny=y+dy[i];
		if(nx<0 or ny<0 or nx>n or ny>m) continue;
		vis[nx][ny]=1;
	}
	dp[0][0]=1;
	for(int i=1;i<=n;++i){
		if(vis[i][0]==1) break;
		dp[i][0]=1;
	}
	for(int i=1;i<=m;++i){
		if(vis[0][1]==1) break;
		dp[0][i]=1;
	}
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j){
			if(vis[i][j]==1) continue;
			dp[i][j]=dp[i-1][j]+dp[i][j-1];
		}
	cout<<dp[n][m];
	return 0;
}
2024/10/4 14:07
加载中...