毁灭吧
#include<iostream>
#include<algorithm>
#include<cmath>
#include<numeric>
#include<vector>
#include<iomanip>
#include<queue>
#include<set>
#include<map>
typedef long long ll;
const double eps = 1e-4;
using namespace std;
int bx, by, cx, cy;
bool check(int x, int y)
{
if ((abs(x - cx) == 2 && abs(y - cy) == 1) || (abs(cx - x) == 1 && abs(cy - y) == 2))
return 0;
return 1;
}
int dp[21][21] = {0};
int main()
{
dp[0][0] = 1;
cin >> bx >> by >> cx >> cy;
for (int i = 0; i <= bx; i++)
for (int j = 0; j <= by; j++)
{
if (i == 0 && j == 0)
continue;
if (check(i, j))
{
if (i == 0)
dp[i][j] += dp[i][j - 1];
else
if (j == 0)
dp[i][j] += dp[i - 1][j];
else
dp[i][j] += dp[i - 1][j] + dp[i][j - 1];
}
}
cout << dp[bx][by]<<endl;
return 0;
}
没看出来问题在哪,但思路肯定是没问题的,不改了以后再说


