求助大佬!3 4 5TLE
查看原帖
求助大佬!3 4 5TLE
967480
jiunichenyin楼主2024/2/27 14:01
#include<iostream>
#include<iomanip>
#include<math.h>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#define maxn 500
using namespace std;
int ans = 0;
bool ma(int x, int y,int mx,int my) {
	if ((x == mx + 1 && y == my + 2) || (x == mx + 1 && y == my - 2) || (x == mx + 2 && y == my + 1) || (x == mx + 2 && y == my - 1) || (x == mx - 1 && y == my + 2) || (x == mx - 1 && y == my - 2) || (x == mx - 2 && y == my + 1) || (x == mx - 2 && y == my - 1) || (x == mx && y == my)) {
		return false;
	}
	return true;
}
void cu(int x, int y,int n,int m,int mx,int my) {
	if (!ma(x + 1, y, mx, my) && !ma(x, y + 1, mx, my)) {
		return;
	}
	if (x <= n && y <= m) {
		if (ma(x, y, mx, my)) {
			cu(x + 1, y, n, m, mx, my);
		}
		if (ma(x, y, mx, my)) {
			cu(x,y+1,n,m,mx,my);
		}
	}
	if (x == n && y == m) {
		ans++;
	}
}
int main() {
	int n, m, mx, my;
	cin >> n >> m >> mx >> my;
	cu(0, 0, n, m, mx, my);
	cout << ans;
	return 0;
}
2024/2/27 14:01
加载中...