#include<iostream>
using namespace std;
long long h,w,cnt,f[1000][1000],a,b;
void dfs(int x,int y){
if(x>h){
y++;
x=1;
}
if(x==h&&y==w){
cnt++;
return;
}
if(f[x][y]){
dfs(x+1,y);
return ;
}
if(y+1<=w&&f[x][y+1]==false&&a>0)
{
a--;
f[x][y]=true;
f[x][y+1]=true;
dfs(x+1,y);
f[x][y]=false;
f[x][y+1]=false;
a++;
}
if(x+1<=h&&f[x+1][y]==false&&a>0){
a--;
f[x][y]=true;
f[x+1][y]=true;
dfs(x+1,y);
f[x][y]=false;
f[x+1][y]=false;
a++;
}
if(b>0){
b--;
f[x][y]=true;
dfs(x+1,y);
f[x][y]=false;
b++;
}
}
int main(){
cin>>h>>w>>a>>b;
dfs(1,1);
cout<<cnt;
}
第五题代码
最新推荐文章于 2023-04-28 09:29:33 发布