//poj 3790
//sep9
#include<iostream>
using namespace std;
int dp[1024];
int rec(int n)
{
if(n==0) return 1;
if(dp[n]!=-1)
return dp[n];
int sum=0;
if(n%2){
for(int i=1;i<=n;i+=2)
sum+=rec((n-i)/2);
}else{
for(int i=0;i<=n;i+=2)
sum+=rec((n-i)/2);
}
return dp[n]=sum;
}
int main()
{
int cases;
memset(dp,-1,sizeof(dp));
scanf("%d",&cases);
for(int t=1;t<=cases;++t){
int n;
scanf("%d",&n);
printf("%d %d\n",t,rec(n));
}
}
poj 3790 Recursively Palindromic Partitions dp水题
最新推荐文章于 2021-11-19 18:00:33 发布