首页 > 其他分享 >模板-数论

模板-数论

时间:2022-09-03 11:35:44浏览次数:62  
标签:return Combination 数论 ret int mul div 模板

原来源: dian巨

阶乘逆元求组合数

在做D - Madoka and The Corruption Scheme时, 一个满二叉树的走法就是C(n,i), 在n轮中赢几场, 最终就是杨辉三角前缀和

image

template<typename T = long long, int P = 1000000007>
class Combination{
 public:// 初始化组合数, mul[i]=i!, div[i]=1/(i!)
  Combination(int n): div(n + 1, 1), mul(n + 1, 1){
      for(int i = 1; i <= n; ++i) mul[i] = mul[i - 1] * i % P;
      div[n] = qPow(mul[n], P - 2);
      for(int i = n - 1; i > 0; --i) div[i] = div[i + 1] * (i + 1) % P;
  }
  T operator () (int n, int m){// c(2,1)=2
      if(m < 0) return 0;
      if(m > n) return 0;
      return mul[n] * div[m] % P * div[n - m] % P;
  }

 private:
  T qPow(T b, T n){
      T ret = 1;
      while(n){
          if(n & 1) ret = ret * b % P;
          b = b * b % P;
          n >>= 1;
      }
      return ret;
  }
  vector<T> div, mul;
};

标签:return,Combination,数论,ret,int,mul,div,模板
From: https://www.cnblogs.com/LiamEvander/p/16652223.html

相关文章

  • Django数据传递与模板语法
    Django数据传递与模板语法视图函数返回值1.视图函数的返回值其实本质上返回的都是HttpResponse对象,HttpResponse其实是一个类,我们最常使用的render和redirect都是这个类......
  • 视图层与模板层
    网页伪静态伪静态页面其实是动态页面,只是看起来和静态页面一样,将动态网页伪装成静态网页,可以提升网页被搜索引擎收录的概率,表现上网址看的像一个具体的文件路径deftest(......
  • 【Django】 第04回 视图层与模板层
    目录1.网页伪静态2.视图层2.1视图函数的返回值问题2.2视图函数返回json格式数据2.3from表单携带文件数据2.4FEV与CBV2.5CBV源码分析3.模板层3.1模板语法传值3.2......
  • 【luogu P5056】【模板】插头dp(插头DP)(分类讨论)
    【模板】插头dp题目链接:luoguP5056题目大意有一个n*m的网格,每个格子要么必须铺线,要么必须不铺。然后问你有多少个铺发使得形成一个闭合回路。思路快乐插头DP模......
  • django之视图层与模板层
    一、伪静态网页'''其实就是如果一个网页如果是一个静态网页的话那么浏览器搜索会更容易搜索的到而如果一个动态网页想要让浏览器更容易搜索到的话可以在路由匹配的时......
  • 关于『数论』:整除理论
    「一本书上每多一个公式,就会死掉减少一半读者。」——霍金「这上面每多一个公式,我就会失明一次。」——JQ序言  数论真有趣(弥天大雾。  (投放Myblogscsdn......
  • 道长的算法笔记:数论基础汇总
    质数判定与筛选给定一个正整数\(N\),如果存在一个数\(T\),T满足\((2\leqT\leqN-1)\)则称\(N\)是一个合数,如果不存在这样这样的因数\(T\),则称\(N\)质数。简单......
  • 【BFS】算法模板与思路
    1.BFS算法的基础理论是什么?BFS算法名叫宽度优先搜索,虽然我能理解深度优先搜索,但我却不是很能理解宽度优先搜索。一个很关键的点在于:宽度优先搜索是一个迭代的算法,不是递......
  • NTT(快速数论变换)
    NTT(快速数论变换)在取模的情况下,解决多项式乘法.n,m表示多项式的次数,从低到高读入constintNR=1<<22,g=3,gi=332748118,mod=998244353;//998244353的......
  • 1.Mybatis-XML模板
    SELECT sr.ROLE_IDASroleId, sr.ROLE_NAMEASroleName, sr.IS_ACTIVEASisActive, sr.REMARKASremark, sr.CREATE_DATETIMEAScreateDatetime, CON......