BZOJ2982 combination(lucas定理)

这篇具有很好参考价值的文章主要介绍了BZOJ2982 combination(lucas定理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目大意

LMZ有 n n n个不同的基友,他每天晚上要选 m m m个一起玩,而且要求每天晚上的选择都不一样。那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案   m o d   10007 \bmod 10007 mod10007的值。

t t t组数据。

1 ≤ t ≤ 200 , 1 ≤ m , n ≤ 200 , 000 , 000 1\leq t\leq 200,1\leq m,n\leq 200,000,000 1t200,1m,n200,000,000


题解

前置知识:lucas定理

题意即求 C n m C_n^m Cnm 10007 10007 10007取模后的值,由 l u c a s lucas lucas定理可得

C ( n , m ) = C ( n / m o d , m / m o d ) × C ( n % m o d , m % m o d ) C(n,m)=C(n/mod,m/mod)\times C(n\% mod,m\% mod) C(n,m)=C(n/mod,m/mod)×C(n%mod,m%mod)

先预处理出 1 1 1 m o d − 1 mod-1 mod1的阶乘和逆元,然后递归求解即可。文章来源地址https://www.toymoban.com/news/detail-456803.html

code

#include<bits/stdc++.h>
using namespace std;
const int N=10006,mod=10007;
int jc[N+5],ny[N+5];
int mi(int t,int v){
	if(!v) return 1;
	int re=mi(t,v/2);
	re=re*re%mod;
	if(v&1) re=re*t%mod;
	return re;
}
void init(){
	jc[0]=1;
	for(int i=1;i<=N;i++) jc[i]=jc[i-1]*i%mod;
	ny[N]=mi(jc[N],mod-2);
	for(int i=N-1;i>=0;i--) ny[i]=ny[i+1]*(i+1)%mod;
}
int C(int x,int y){
	if(x<y) return 0;
	return jc[x]*ny[y]%mod*ny[x-y]%mod;
}
int lucas(int x,int y){
	if(x<y) return 0;
	if(y==0) return 1;
	return lucas(x/mod,y/mod)*C(x%mod,y%mod)%mod;
}
int main()
{
	int t,n,m;
	init();
	scanf("%d",&t); 
	while(t--){
		scanf("%d%d",&n,&m);
		printf("%d\n",lucas(n,m));
	}
	return 0;
}

到了这里,关于BZOJ2982 combination(lucas定理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • BZOJ4975 区间翻转

    题目大意 有一个长度为 n n n 的序列 a 1 , a 2 , … , a n a_1,a_2,dots,a_n a 1 ​ , a 2 ​ , … , a n ​ 。小 Q Q Q 和小 T T T 在玩游戏。两人轮流操作,小 Q Q Q 先手。对于每次操作,玩家需要选择一个长度为 4 x + 2 4x+2 4 x + 2 或 4 x + 3 4x+3 4 x + 3 的区间 [ l , r ] [l,r] [ l , r ] ,其中 x x x 是玩

    2023年04月12日
    浏览(34)
  • 【二十】【动态规划】879. 盈利计划、377. 组合总和 Ⅳ、96. 不同的二叉搜索树 ,三道题目深度解析

    动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利用已经计算好的小问题的解,而不需要重

    2024年01月16日
    浏览(40)
  • 18.Lucas-Kanade光流及OpenCV中的calcOpticalFlowPyrLK

    欢迎访问个人网络日志🌹🌹知行空间🌹🌹 光流描述了像素在图像中的运动,就像彗星☄划过天空中流动图像。同一个像素,随着时间的流逝,会在图像中运动,光流法就是追踪它的运动过程。 光流法根据追踪的像素数又可以分成 稀疏光流法 和 稠密光流法 。 稀疏光流法

    2024年02月13日
    浏览(47)
  • 【LeetCode题目详解】第九章 动态规划part03 343. 整数拆分 96.不同的二叉搜索树 (day41补)

    给定一个正整数  n  ,将其拆分为 k 个 正整数 的和(  k = 2  ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积  。 示例 1: 示例 2: 提示: 2 = n = 58 看到这道题目,都会想拆成两个呢,还是三个呢,还是四个.... 我们来看一下如何使用动规来解决。 # 动态规划 动

    2024年02月10日
    浏览(46)
  • Elasticsearch:Combined fields 查询

    有时一个匹配项可以覆盖多个文本字段。 在这种情况下,你可以使用 combined_fields 查询来搜索多个文本字段,就好像它们的值实际上已被索引到一个组合字段中一样。 除此之外,combined_fields 的主要好处是强大且易于理解的评分算法。这种做法也有类似于 copy_to​​​​​​​

    2023年04月19日
    浏览(36)
  • hadoop中combiner是什么

    Combiner(合并器) 在Hadoop中,Combiner(合并器)是一个可选的阶段,用于优化MapReduce任务的性能。它是在Map阶段输出之后、规约(reduction)之前执行的。 Combiner的作用是在Map任务的本地节点上对Map阶段的输出进行局部聚合。它接收Map任务输出的键值对,并将具有相同键的键值

    2024年02月12日
    浏览(39)
  • Lintcode 152 · Combinations (组合好题)

    152 · Combinations Algorithms Medium Description Given two integers n and k. Return all possible combinations of k numbers out of 1, 2, … , n. You can return all combinations in any order, but numbers in a combination should be in ascending order. Example Example 1: Input: n = 4, k = 2 Output: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] Example 2: Input: n = 4,

    2024年02月05日
    浏览(39)
  • 5.MapReduce之Combiner-预聚合

    在 MR、Spark、Flink 中,常用的减少网络传输的手段。 通常在 Reducer 端合并,shuffle 的数据量比在 Mapper 端要大,根据业务情况及数据量极大时,将大幅度降低效率;且预聚合这种方式也是有其缺点,不能改变业务最终的逻辑,否则会出现,计算结果不正确的情况。 如下图,可

    2024年02月02日
    浏览(38)
  • Application of Permutation and Combination

    目录 Summary Reference Online Tool Cracking the Safe! 计算比赛前三名有多少种排列方式? Can you win the lottery? How make a pill? Think 如果你遇到的问题,自己不确定是排列还是组合,但确定想求出摆放的全部方式,那么可以用逐步分析法。 0.首先确定这个问题的次序重要不? 1.重要 重要就用

    2024年02月08日
    浏览(31)
  • 【HDLBits 刷题 5】Circuits(1)Combinational Logic

    目录 写在前面 Combinational Logic Basic Gates Wire GND NOR Another gate Two gates More logic gates 7420 chips Truth table Two bit equality Simple circuit A Simple circuit B Combine circuits A and B Ring or vibrate Thermostat 3 bit population count Gates and vectors Even longer vectors Multiplexers 2 to 1 mux 2 to 1 bus mux 9 to 1 mux 256 to 1 mux 256 t

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包