国家集训队2005论文集唐文斌高等数学.pptVIP

国家集训队2005论文集唐文斌高等数学.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国家集训队2005论文集唐文斌高等数学

正难则反 —— 浅谈逆向思维在解题中的应用 引入 有一排路灯,一共八盏,均关闭。要求打开其中三盏,没有任意两盏相邻,有多少种不同的方式。 如果直接考虑三盏打开的灯,需要讨论! 不妨来考虑没有被打开的那些灯。 引入 引入 逆向思维是一种思考问题的方式,它有悖于通常人们的习惯,而正是这一特点,使得许多靠正常思维不能或是难于解决的问题迎刃而解。 例一、Dinner Is Ready [题目描述] M根骨头分给n个孩子,第i个孩子有两个参数Mini和Maxi,表示第i个孩子至少要得到Mini根骨头,至多得到Maxi根骨头。 给出n(0n≤8) , M(0M)以及Mini和Maxi (0≤Mini≤Maxi≤M) 计算有多少种分配方案(骨头不能浪费,必须都分给孩子们) 例一、Dinner Is Ready 例一、Dinner Is Ready 该题模型即求如下方程组的整数解的个数: 例一、Dinner Is Ready 设S为全集,表示满足Xi≥Mini的整数解集。 例一、Dinner Is Ready 例一、Dinner Is Ready 至此,问题已经被解决。 例二、Greedy Path 例二、Greedy Path 例二、Greedy Path 例二、Greedy Path 例二、Greedy Path 例三、Building Towers 例三、Building Towers 例三、Building Towers 例三、Building Towers 例三、Building Towers 逆向动态规划的好处在于: 1)自顶向下的看问题,有“一览众山小”的开阔视野,可以顺利地为如何搜,先搜什么后搜什么,以及如何剪枝等作合理的布局。 2)在类似于本题的计数问题中,可以采用部分记忆化的方法,即只记录那些比较容易被多次搜索到的状态。这样一来,减少了存储的状态量,加快了查询的速度。 例三、Building Towers 让我们来看看逆向动态规划的精彩表现: 总结 总结 * * 绍兴市第一中学 唐文斌 要开3盏灯,则有5盏是关闭的 两盏相邻的关闭的灯之间只能插入一盏开着的灯 等价于在六个可选位置中选三个插入开着的灯 所以答案为C(6,3) 逆向思维 问题 答案 实例: N=3 M=7 Min1=1 , Max1=2 Min2=2 , Max2=4 Min3=3 , Max3=6 1 2 4 1 3 3 2 2 3 3组可行方案 X1+X2+X3+…+Xn=M Min1 ≤X1 ≤Max1 Min2 ≤X2 ≤Max2 …… Minn ≤Xn ≤Maxn 对于方程组的简单形式 xxxX1+X2+…+Xn=M xxxXi ≥ 0(1≤i≤n) 我们知道方程解数为C(M+n-1,n-1) 设Yi = Xi + Mini 则方程组变为: Y1+Y2+Y3…+Yn=M-Min1-Min2-…-Minn 0 ≤Y1 ≤Max1-Min1 0 ≤Y2 ≤Max2-Min2 …… 0 ≤Yn ≤Maxn-Minn 下界我们可以通过换元得到简单形式 但是上界仍然无法解决! 设Si为S中满足约束条件Xi≤Maxi的整数解集, Si为Si在S中的补集,即满足XiMaxi(Xi≥Maxi+1) |Si|无法计算,但是,|Si|可解!!! 那么,我们是否可以通过可解的|Si|从而得到无法计算的|Si|呢? 于是,我们就得到了: 时间复杂度为O(2n*(n+M)) 在原集合Si的模|Si|不可解的情况下,我们通过可解的|Si|得到了一个基于容斥原理的算法。 [题目描述] 给定一个有向图G=(V,E) 对于e∈E,有参数Ce和Te,分别表示该条边的费用与时间。 求一个回路,使得回路中费用总和与时间总和的比值最大。 题目是求一条回路,但不是边权和最大或者最小,不能直接使用经典算法,似乎无从下手。 我们的目标是找一条回路C=(V’,E’) , 使得F(C)最大: 设S为G中所有回路组成的集合。 假定C*=(V*,E*) ∈S就是我们要求的最优回路 定义函数O(t) : 我们做一个猜想: 如果有o (t*)=0,也就是存在C* = (V*,E*) ∈S 满足: 我们认为C*就是最优回路! 证明:如果存在另一条回路C1=(V1,E1) ∈S更优 则 与O(t*)=0矛盾 更进一步,可以发现: 如果t*是最优答案,则存在: 根据该性质,便得到了算法: 我们只要从一个包含t*的区间(tl,th)开始,不断地二分,计算o((tl+th)/2),得到新的上下界,

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档