救救蒟蒻吧
查看原帖
救救蒟蒻吧
389729
BantM楼主2023/10/18 22:00

只有80pts,本蒟蒻实在是调不出来了,救救我吧(悬赏两个关注)

#include <bits/stdc++.h>
using namespace std;
long long dp[10005][10005],ma[10005][10005];
int dx[8] = {2,1,-2,-1,2,1,-2,-1};
int dy[8] = {1,2,-1,-2,-1,-2,1,2};
int main(){
	int n,m,x1,x2;
	cin>>n>>m>>x1>>x2;
	dp[0][0]=1;
	for(int i=1;i<=m;i++){
		dp[0][i]=1;
	}
	for(int i=1;i<=n;i++){
		dp[i][0]=1;
	}
	for(int i=0;i<=7;i++){
		int tx=x1+dx[i];
		int ty=x2+dy[i];
		if(tx>=0&&tx<=n&&ty>=0&&ty<=m){
			ma[tx][ty]=1;
			dp[tx][ty]=0;
		}
		if(tx==0){
			for(int j=ty;j<=m;j++) dp[0][j]=0;
		}
		if(ty==0){
			for(int j=tx;j<=n;j++) dp[j][0]=0;
		}
	}
	ma[x1][x2]=1;
	dp[x1][x2]=0;
	if(x1==0){
		for(int i=x2;i<=m;i++) dp[0][i]=0;
	}
	if(x2==0){
		for(int i=x1;i<=n;i++) dp[i][0]=0;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(ma[i][j]==1) continue;
			dp[i][j]=dp[i-1][j]+dp[i][j-1];
		}
	}
	cout<<dp[n][m];
	return 0;
}
2023/10/18 22:00
加载中...