递推 || 记忆化递归 均可
2023-10-21 19:52:35
发布于:北京
14阅读
0回复
0点赞
#include <iostream>
using namespace std;
int head[1005];
int cm(int n,int ret,int max){
if(n==0) return head[0]=1;
if(head[n]!=0) return head[n];
int ans=0;
if(n==max){
ans+=cm(n/2,n,max);
return ans;
}
for(int a=n;a>=0;a--){
if(a>ret/2) continue;
ans+=cm(a/2,a,max);
}
return head[n]=ans;
}
int main(){
int n;
cin>>n;
cout<<cm(n,n*2,n);
return 0;
}
这里空空如也
有帮助,赞一个