首页 > 编程语言 >【算法】数论

【算法】数论

时间:2024-04-07 17:14:17浏览次数:21  
标签:数论 题解 sum times 算法 tbinom 公式 减号

题目链接

前言

疑似是有点不会数学了,照着题解推式子都推了小半个下午,还看不出来减法公式,唉。

题解

考虑把这些 \(f(a,b)\) 异或起来再模一个数不会有很好的性质,所以要把每一个 \(f(a,b)\) 都算出来。

由加法公式得

\[f(a,b)=\sum \ \tbinom{b}{i}\tbinom{n-i}{a} \]

\[= \sum \tbinom{b-1}{i}\tbinom{n-i}{a}+\sum \tbinom{b-1}{i-1}\tbinom{n-i}{a} \]

\[=f(a,b-1)+\sum\tbinom{b-1}{i}\tbinom{n-i-1}{a} \]

再想办法把加号后面的式子用 \(f\) 表示。

由减法公式得

原式=

\[f(a,b-1)+\sum \tbinom{b-1}{i}\tbinom{n-i}{a}-\sum \tbinom{b-1}{i}\tbinom{n-i-1}{a-1} \]

\[2 \times f(a,b-1)-\sum \tbinom{b-1}{i}\tbinom{n-i-1}{a-1} \]

接着表示减号后面的

原式=

\[2 \times f(a,b-1)-(\sum \tbinom{b}{i+1}\tbinom{n-i-1}{a-1}-\sum\tbinom{b-1}{i+1}\tbinom{n-i-1}{a-1}) \]

\[=\sum \tbinom{b}{i}\tbinom{n-i}{a-1}-\sum\tbinom{b-1}{i}\tbinom{n-i}{a-1} \]

\[=f(a-1,b)-f(a-1,b-1) \]

(后面省略了减号之前的部分)

整理得

\(f(a,b)=2 \times f(a,b-1)-f(a-1,b)+f(a-1,b-1)\)

然后就递推算每一个 \(f(a,b)\) 就行了。

这里要注意一下边界。

然后复杂度是 \(O(m^2)\) 的。

标签:数论,题解,sum,times,算法,tbinom,公式,减号
From: https://www.cnblogs.com/infinite2021/p/18119431

相关文章

  • 排序算法——快速排序
    问题描述 现有一组数据:23,45,18,11,13,79,72,25,3,17,请使用快速排序算法将它们按照从小到大的顺序排列。算法思想(1)在无序数据中选一个基准数(通常为数据第一个);(2)将数据中小于基准数的数据移到基准数左边,大于基准数的移到右边;(3)对于基准数左、右两边的数据,不断重复以上两个......
  • 贪心算法|1005.K次取反后最大化的数组和
    力扣题目链接classSolution{staticboolcmp(inta,intb){returnabs(a)>abs(b);}public:intlargestSumAfterKNegations(vector<int>&A,intK){sort(A.begin(),A.end(),cmp);//第一步for(inti=0;i<A.size......
  • 操作系统综合题之“采用动态分区分配算法下的3种算法(首次适应算法、循环首次适应算法
    一、问题:当空闲链如下图,第一个空闲分区起始地址为20KB,大小为120KB;第二个空闲分区起始地址为200KB,大小为100KB;第三个空闲分区起始地址为400KB,大小为60KB。若某进程P1先申请大小为30KB的内存空间,随后进程P2再申请大小为20KB的内存空间,画出给P1分配完之后的空闲链和给P2分配完......
  • 强化学习算法性能表现
    各算法在不同环境中的表现:来自天寿基准测试https://tianshou.org/en/stable/01_tutorials/06_benchmark.html1.HalfCheetah-v3SAC>DDPG>TD3>PPO>TRPO>NPG>ACKTR>A2C>REINFORCE2.蚂蚁v3SAC>TD3>A2C>PPO>......
  • 因为算法不同,客户端与服务器无法通信。”的解决方法
    因为算法不同,客户端与服务器无法通信。”的解决方法sqlserver客户端远程sqlserver服务器 或是mstsc 最后根据微软文档的说明,改动注册表就成功了:传输层安全性(TLS)注册表设置|MicrosoftDocs在注册表编辑器,找到以下注册表项/文件夹:HKEY_LOCAL_MACHINE\SYSTEM\Curren......
  • Python算法学
    Python算法学习平台有很多,它们提供了丰富的资源和工具,帮助学习者从基础到高级的算法知识。以下是一些流行的Python算法学习平台:1.**LeetCode**:-网址:[https://leetcode.com/](https://leetcode.com/)-特点:LeetCode是一个非常受欢迎的在线编程平台,提供了大量的编程挑战,主......
  • CS202 WeensyOS 内存分配算法
    CS202:实验室4:WeensyOSCS202:实验室4:WeensyOS介绍在这个实验室中,您将在一个(但却是真实的!)操作系统,名为WeensyOS。这将向您介绍虚拟内存,并强化我们已经介绍过的一些概念学期WeensyOS内核在x86-64CPU上运行。因为操作系统内核运行在“裸”硬件上,所以调试内核代码可能很难:如果一个......
  • 常见的排序算法——插入排序
    本文记述了插入排序的基本思想和一份参考实现代码,并在说明了算法的性能后用实验进行了验证。◆思想将第一个元素之后的所有元素作为待排序范围,将前面的所有元素作为已排序范围。通过一一比较,逐个交换已排序范围内比第二个元素大的所有元素,使第二个元素被插入到了正确的位置。然......
  • ACTL5105人工智能算法
    ACTL5105分配到期时间:2024年4月15日星期日下午5点这是一项个人课业。总分为100分,占总分的20%球场标记。工作分配任务作为一名人寿精算师,你的任务是完成以下两项任务。任务I(25分)创建列出Ax、¨Ax、,2Ax、(IA)x和(IA¨)x假设excel文件“A-population-2020”中人群的年利率为5%。(说明:您......
  • 18天【代码随想录算法训练营34期】● 513.找树左下角的值 ● 112. 路径总和 113.路径
    513.找树左下角的值#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:deffindBottomLeftValue(self......