放开递推思想.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
放开递推思想 菜鱼※QQ :155175157 放开递推思想 ——由 Ural 1036 想到的 【关键字】:递推 容斥原理 方程整数解的个数 【前 言】: 做DP/递推的题目多了,看到一道要求“个数”的题目,会很自 然地想到递推。但递推一定是唯一或者最好的方法吗?本文从 Ural 1036(Lucky Tickets)谈起,简述容斥原理的一类应用。 【正 文】: Ural 1036 题目大意(原文见附录):给出n 和s,求“前n位的 和=后n 位和=s/2”的2n 位数的个数。每个数的最高位可以为 0。 这题见得最多的方法是递推,时间复杂度为O(n*s*k)(k为进制, 本题中取 10)。因为此算法与本文关系不大,故不再赘述,有兴趣的 可以参见附录中的程序(感谢Amber)。 我们来分析一下这个题目(因 s 为奇数时答案为 0,本文假设 s 为偶数)。 题目说明是2n 位数,而且前n 位和=后n 位和=s/2,则这个数的 前n 位可以表示如下: x +x +x +…+x =s/2 1 2 3 n 因为要求满足条件的数的个数,由乘法原理知,只要用前n 位可 能的方法数×后n 位的方法数即可。又因为题目说最高位可以为 0, 则前n 位的方法数=后n 位的方法数,我们只需要求任一个即可。本 放开递推思想 菜鱼※QQ :155175157 文中求前 n 位的方法数。 由分析知,我们只需要求得以上方程的非负整数解的个数再平方 即可。但怎么求以上方程的非负整数解的个数呢? 应用组合学公式(定理),我们可以知道: 方程x +x +x +…+x =n的非负整数解的个数为C(n+k-1,n) (*) 1 2 3 k 证明从略。 既然有了公式,我们是否就可以直接计算答案了呢?答案是否定 的。当 n=2,s=20 时,用以上公式算出的结果会比正确答案大,原因 在于它忽略了题意:十进制。如果不考虑进制,则每一位都可能取到 0 至20,但在十进制中,不可能有一位上的数大于9。 于是我们知道,我们需要求的是x +x +x +…+x =s/2 的非负整数 1 2 3 n 解的个数,其中:xi=9 加上这个要求,问题似乎就没有简单的组合公式可用了。 【容斥原理】: 集合S 中不具有性质P1,P2,...,Pm的元素的个数由下式给出(Ai 表示满足 Pi 的元素集合): 这个有什么用呢?请看: 令性质Pi(1=i=n)为xi=10。 应用原理,|S|为x +x +x +…+x =s/2的非负整数解的个数。由 1 2 3 n (*)式知,|S| C(s/2+n-1,s/2); 放开递推思想 菜鱼※QQ :155175157 因为集合A1 由满足性质P1 的所有元素组成,即由所有满足 X1=10 的解组成。作变量代换:y=x-10,y=x ,…,y=x , 1 1 2 2 n n 我们可以知道|A|与y+y+…+y=s/2-10 的非负整数解的 1 1 2 n 个数相同,即C(s/2-10+n-1

文档评论(0)

雨中人 + 关注
实名认证
文档贡献者

这一世渡尽红尘,若有来生,不再为人。

1亿VIP精品文档

相关文档