【dfs题解】---只有50分
(头一回自己用dfs做出来了dp的hard等级的大题,从来没有拿50分这么高兴过哈哈哈哈哈)
#include <bits/stdc++.h>
using namespace std;
int n,m;
long long ans=0;
const long long mol=1e9+7;
void dfs(int h,int d,int sum)
{
if(h<0||d<0||sum<=0)
return;
if(h==0&&d==0&&sum==2)
{
ans++;
ans%=mol;
return;
}
if(sum%2!=0)
{
dfs(h-1,d,sum+1);
}
else{
dfs(h-1,d,sum+1);
dfs(h,d-1,sum/2);
}
}
int main()
{
scanf("%d%d",&n,&m);
dfs(m-2,n,2);
printf("%d",ans);
return 0;
}
dp题解等赛后再补上