zoukankan      html  css  js  c++  java
  • 母函数例题

    有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?各种重量各有几种可能方案?

    考虑用母函数来求解:

    G(x)=(1+x+x^2+x^3…)*(1+x^2+x^4+…)*(1+x^3+x^6+…)

    #include"iostream"
    using  namespace  std;
    const  int _max=10001;
    int c1[_max],c2[_max];//c1是保存各项质量砝码可以组合的数目;c2是中间量,保存每一次的情况;
    int main()
    {
       int nNum;
       int i,j,k;
       while(cin>>nNum)
       {
           for(i=0;i<=nNum;++i)
           {
               c1[i]=1;
               c2[i]=0;                   
           }                            
            for(i=2;i<=nNum;++i)
            {
                for(j=0;j<=nNum;++j)
                  for(k=0;k+j<=nNum;k+=i)
                  {
                     c2[j+k]+=c1[j];                       
                  }                    
              for(j=0;j<=nNum;++j)
              {
                  c1[j]=c2[j];
                  c2[j]=0;                   
              }
            }
            cout<<c1[nNum]<<endl;
       }   
        return  0;
    }

  • 相关阅读:
    linux常用服务安装部署
    linux系统基础优化及常用命令
    linux文档和目录结构
    【BZOJ2510】弱题
    【BZOJ3495】PA2010 Riddle
    算法笔记——2-SAT
    路面修整的题解
    三角形的题解
    流星雨的题解
    计算的题解
  • 原文地址:https://www.cnblogs.com/QQbai/p/2127017.html
Copyright © 2011-2022 走看看