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

    听了kuangbin的把杭电上的数学分类的题都先做一遍,遇到不会就去学习别人的博客上的讲解,没想到遇到的第二道题竟然是母函数

    那在这里就当是复习一下下了

    题意

    对一个整数进行拆分

    代码

    #include<iostream>
    using namespace std;
    #define M 101000
    int c1[M],c2[M];
    int main()
    {
     int n,i,j,k;
     while(cin>>n){
      for(i=0;i<=n;i++){
       c1[i]=1;
       c2[i]=0;
      }
      for(i=2;i<=n;i++){
       for(j=0;j<=n;j++){
        for(k=0;k+j<=n;k+=i){
         c2[k+j]+=c1[j];
        }
       }
       for(j=0;j<=n;j++){
        c1[j]=c2[j];
        c2[j]=0;
       }
      }
      cout<<c1[n]<<endl;
     }
     return 0;
    }

    其实母函数就是模拟多项式的展开一项一项的计算 

    核心代码其实就是三个for循环

    下面讲一下每一个循环的意思

     第一个for循环是有除掉第一个()还有多少个括号

    第二个for循环是枚举前面一个括号里的每一项(其实是不断更新的)

    第三个for循环每次想乘后一个括号的多项式

    数组的下标是多项式的指数,数组的值就是要求的组合种数

    (突然发现大一的时候学的东西是那么的简单)

  • 相关阅读:
    kubernetes架构部署
    GitLab+Jenkins+Ansible
    python之字典方法
    Python之列表方法
    python之字符串方法
    Python编写从ZabbixAPI获取信息
    Django基础
    扫描某个包下所有的类,输出所有使用了特定注解的类的注解值
    日志切面和统一异常处理
    Mybatis动态排序问题
  • 原文地址:https://www.cnblogs.com/ACWQYYY/p/4485924.html
Copyright © 2011-2022 走看看