记忆化搜索WA 40分,求解!
#include<iostream>
#include<stdlib.h>
#include<fstream>
#include<map>
#include<string.h>
#include<queue>
int vis[101][101];
long long a[101][101];
long long result(int x,int y) {
if(x==1 or y==1) {
vis[x][y]=true; return a[x][y]=1ll;
}
if(vis[x][y])
return a[x][y];
vis[x][y]=true;
return a[x][y]=result(x-1,y)+result(x,y-1);
}
int main() {
memset(a,0,sizeof(a));
int x,y,xm,ym;
std::cin>>x>>y>>xm>>ym,std::cout.tie(0);
x++,y++;
++xm,ym++;
vis[xm][ym]=true;
vis[xm-1][ym-2]=true,vis[xm-2][ym-1]=true,vis[xm+1][ym+2]=true,vis[xm+2][ym+1]=true,
vis[xm-1][ym+2]=true,vis[xm-2][ym+1]=true,vis[xm+1][ym-2]=true,vis[xm+2][ym-1]=true;
std::cout<<result(x,y);
return 0;
}