从特殊情况考虑.doc

  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文档。上传文档
查看更多
从特殊情况考虑 复旦附中 李天翼 [关键字] 特殊情况 信息学竞赛 [摘要] 从特殊情况考虑是一种重要的数学思想。而特殊情况主要分为简单情况和极端情况。 本文通过几道例题,来说明从特殊情况考虑这一思想在信息学竞赛中的应用,并提炼出它们的共同点,揭示这一思想的重要内涵。 [目录] 例1 Bra §1问题描述§2 解决方案 §3小结 例2 Sko §1 问题的提出 §1.1 问题描述§1.2 最初的想法 §2 两个预备算法 §2.1 Euclid算法 §2.2 模线性方程的解法 §3问题的解决 §3.1 猜想的证明 §3.2 算法的实现 §4 小结 例3 Polygon §1 问题描述 §2 问题的解决 §2.1 一个朴素的想法 §2.2 考虑特殊情况 总结 [正文] 例1 1.问题描述(由POI 2003-2004 Bra改编) 考虑一个有n个门组成的电路。这些门被标号为0、1、2、……、n-1。每个门有固定数目的输入和一个输出。输入和输出可以是0、1、1/2三种状态中的任意一个。每个输入连接某个门的一个输出。输入的状态与它所连接的输出状态相同。每个输出可以与数个输入相连。标号为0和1的门很特殊,它们没有输入,标号为0的门总输出0,标号为1的门总输出1。我们说,一个门的输出状态是“有效”的,当且仅当满足下列条件之一。 a)它等于0并且这个门的输入中0比1多。 b)它等于1/2并且这个门的输入中0和1一样多。 c)它等于1并且这个门的输入中1比0多。 d)它等于这个门的编号,且这个门的编号是0或1。 如果所有的门的输出状态是“有效”的,那么我们说这个电路是“有效”的。如果一个门的输出状态在所有“有效”的电路中都是一样的,那么它的输出状态是固定的。保证存在“有效”的电路。 任务: 写一个程序 从标准输入中读取电路的描述 对每一个门,检查它的输出状态是否是固定的,如果是固定的,确定它的状态。 向标准输出中写入输出状态固定的门的状态 输入: 标准输入包含一个整数n,。接下来的n-2行包括每个门的连接的描述。第i行描述第i个门的输入:第一个整数k_i(),表示这个门有k_i个输入,接下来的k_i个数表示这k_i个门的编号。行内整数之间用空格分隔。每个门的输入的总数不超过200000。 输出: 你的程序应该输出n行到标准输出中。第i行包括的内容,取决于编号为i-1的门的输出状态。 0---如果它总是0 1/2---如果它总是1/2 1---如果它总是1 ?---如果它不确定 样例: 输入数据: 5 2 0 1 2 4 2 2 2 4 输出数据: 0 1 1/2 ? ? 2.解决方案 由于图中有环,对于每个门,我们难以直接判断它的输出状态是否是固定的,这给解题带来了困难。 设P(i)为i号门的输出状态。 令Pmin(i)和Pmax(i)分别为P(i)在所有“有效”的电路中能取到的最小值和最大值,它们是P(i)的极端情况。 显然,若Pmin(i)=Pmax(i) ,则i号门的输出状态是固定的,否则就不是固定的。 因此,我们只需要求出Pmin(i)和Pmax(i)。 令Cj,i表示i号门的所有输入端中,连接j号门输出端的数量。 考虑 即相当于i号门所有输入状态的平均值。 根据题目中“有效”的定义,在所有“有效”的电路中: 若该值小于1/2,则P(i)=0 若该值等于1/2,则P(i)=1/2 若该值大于1/2,则P(i)=1 我们进行这样的操作。先将所有的门的输出状态都标为0,此时只有1号门不是“有效”的。从1号门开始,将它的输出状态改为1。然后不断找到矛盾所在,进行迭代。 下面证明,如此迭代必然能够终止,并且迭代终止时,P(i)=Pmin(i)。 证明:假设命题不成立。 由于操作开始时,对,满足。 因为命题不成立,所以必然在某个时刻开始出现。而在此之前的那个时刻,对,仍然满足。 考虑,即k号门所有输入状态的平均值。这个值已经相当大,使得P(k)取Pmin(k)不符合要求。 注意到,,这意味着不存在一个“有效”的电路,满足。而这一点与Pmin(k)的定义矛盾。 证毕。 由于每个门的状态最多变两次(0变1/2,1/2变1),每个门的输入的总数不超过200000,因此在不超过2*200000=400000次迭代后,迭代终止。此时有P(i)= Pmin(i) (。 类似的,我们可以求得Pmax(i)。至此,整个问题获得解决。 3.小结 极端情况是特殊情况的一种表现形式。题目中的许多性质,往往会通过一些具有极端性质的对象(比如本题中的取极值)表现出来。这就是使得我们可以以它们为重点考察对象,来寻找突破口和答案。 例2 1.问题的提出 1.1问题描述 Sko(POI 2004-2005) 骑士在一个无限大的棋盘上移动。他能够执行的每种移动可以表示为一

文档评论(0)

山丹丹 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档