#include<iostream>
#include<iomanip>
#include<cstring>
#include<string>
using namespace std;
long long map[40][40];
void f(int a,int b)
{
if (map[a][b - 1] != -1)
{
map[a][b - 1] = map[a][b];
if (map[a + 1][b - 1] != -1)
{
map[a][b - 1] += map[a + 1][b - 1];
}
f(a,b - 1);
}
if (map[a - 1][b] != -1)
{
map[a - 1][b] = map[a][b];
if (map[a - 1][b + 1] != -1)
{
map[a - 1][b] += map[a - 1][b + 1];
}
f(a - 1,b);
}
}
int main()
{
int n1,n2,m1,m2;
cin >> n1 >> n2 >> m1 >> m2;
n1 += 10;
n2 += 10;
m1 += 10;
m2 += 10;
map[n1][n2] = 1;
for (int i = 9;i < 40;i++)
{
map[i][9] = -1;
}
for (int i = 9;i < 40;i++)
{
map[9][i] = -1;
}
map[m1][m2] = -1;
map[m1 - 1][m2 - 2] = -1;
map[m1 + 1][m2 - 2] = -1;
map[m1 + 2][m2 - 1] = -1;
map[m1 + 2][m2 + 1] = -1;
map[m1 + 1][m2 + 2] = -1;
map[m1 - 1][m2 + 2] = -1;
map[m1 - 2][m2 + 1] = -1;
map[m1 - 2][m2 - 1] = -1;
f(n1,n2);
printf("%d",map[10][10]);
return 0;
}
第345个点TLE了,求助。
不太会发帖子啊,第一次求助,如若礼节不周,还请海涵。