萌新60分求助3,4测试点tle
查看原帖
萌新60分求助3,4测试点tle
626785
lxc_awa楼主2022/3/16 20:48

萌新求助

#include<bits/stdc++.h>
using namespace std;
int o[21][21]={};
void maps(int a,int b){
	o[a][b]=1;
	if(a-1>=0&&b-2>=0)o[a-1][b-2]=1;
	if(a-2>=0&&b-1>=0)o[a-2][b-1]=1;
	if(a-1>=0&&b+2>=0)o[a-1][b+2]=1;
	if(a-2>=0&&b+1>=0)o[a-2][b+1]=1;
	if(a+1>=0&&b-2>=0)o[a+1][b-2]=1;
	if(a+2>=0&&b-1>=0)o[a+2][b-1]=1;
	if(a+1>=0&&b+2>=0)o[a+1][b+2]=1;
	if(a+2>=0&&b+1>=0)o[a+2][b+1]=1;
}
int f(int n,int m){
	if(n==0&&m==0)return 1;
	if(o[n-1][m]==0&&o[n][m-1]==0&&n-1>=0&&m-1>=0)return f(n-1,m)+f(n,m-1);
	if(o[n-1][m]==0&&n-1>=0)return f(n-1,m);
	if(o[n][m-1]==0&&m-1>=0)return f(n,m-1);
	return 0;
}
int main(){
	int n,m,a,b;
	cin>>n>>m>>a>>b;
	maps(a,b);
	cout<<f(n,m);
	return 0;
}
2022/3/16 20:48
加载中...