#3,#4,#5TLE,求救
查看原帖
#3,#4,#5TLE,求救
1263299
yonghu1020楼主2024/2/23 12:17
#include <bits/stdc++.h>
using namespace std;
int a[9][2] = {{0, 0}, {2, 1}, {1, 2}, {-1, 2}, {-2, 1}, {-2, -1}, {-1, -2}, {1, -2}, {2, -1}};
long long dp(long long bx, long long by, long long mx, long long my){
	for(int i = 0; i <= 8; i++){
		int mxx = -1, myy = -1;
		if(mx + a[i][0] >= 0)
			mxx = mx + a[i][0];
		if(my + a[i][1] >= 0)
			myy = my + a[i][1];
		if(bx == mxx && by == myy){
			return 0;
		}
	}
	if(!bx && !by){
		return 1;
	}else if(!bx && by){
		return dp(bx, by-1, mx, my);
	}else if(bx && !by){
		return dp(bx-1, by, mx, my);
	}else{
		return dp(bx, by-1, mx, my) + dp(bx-1, by, mx, my);
	}
}
int main(){
	long long bx, by, mx, my;
	cin >> bx >> by >> mx >> my;
	cout << dp(bx, by, mx, my);
	return 0; 
}
2024/2/23 12:17
加载中...