已开long long, 60pts WA#3#4
查看原帖
已开long long, 60pts WA#3#4
813765
PC114514楼主2023/7/18 08:56

RT, 求指点

#include<bits/stdc++.h>
#define int long long
using namespace std;
int dp[105][105];
signed main(){
	int hx,hy,bx,by;
	cin>>bx>>by>>hx>>hy;
	int dx[9] = {-2,-2,-1,-1,1,1,2,2,0};
	int dy[9] = {-1,1,-2,2,-2,2,-1,1,0};
	for(int i=0;i<=bx;i++)
		dp[i][0] = 1;
	for(int i=0;i<=by;i++)
		dp[0][i] = 1;
	for(int i=0;i<9;i++)
		if(hx+dx[i]<=bx && hy+dy[i]<=by && hx+dx[i]>=0 && hy+dy[i]>=0)
			dp[hx+dx[i]][hy+dy[i]] = -1;
	for(int i=1;i<=bx;i++){
		for(int j=1;j<=by;j++){
			if(dp[i][j]==-1) continue;
			dp[i][j] = max((int)0,dp[i-1][j])+max((int)0,dp[i][j-1]);
		}
	}
//	for(int i=0;i<=by;i++){
//		for(int j=0;j<=bx;j++){
//			cout<<setw(2+j*0.8)<<dp[i][j];
//		}
//		cout<<endl;
//	} 调试 
	cout<<dp[bx][by];
	return 0;
}
2023/7/18 08:56
加载中...