母函数


    #include<iostream>  
    #include<cstring>  
    #include<algorithm>  
    using namespace std;  
    const int MAX=50;  
    #define CLR(arr,val) memset(arr,val,sizeof(arr))  
    int n,m,value[MAX],temp[MAX];  
    int main()  
    {   cin>>m;  
        while(m--)  
        {   cin>>n;  
            fill(value,value+MAX,1);//value用来存储系数   
            CLR(temp,0);//temp用来保存每一次的情况  
            for(int i=2;i<=n;i++)                                                          
            {   for(int j=0;j<=n;j++)  
                    for(int k=0;k+j<=n;k+=i) //控制每次系数的变化和每个数出现的最大项数   
                        temp[k+j]+=value[j];    
                for(int j=0;j<=n;j++)  
                    value[j]=temp[j],temp[j]=0;  
            }  
            cout<<value[n]<<endl;   
        }  
        return 0;  
    }  

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容