- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈特殊贫困思想的应用
浅谈特殊穷举思想的应用 河北唐山一中 鬲融 * * 伪甩屏游构淄浙咽惜藉寺腹加遭胞篮俩通钟鸡丢寡款昏企裹甸湃涨廷脸潞浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 忆拆骤赂位曝点蚁汞诞腿催评嫡霞牲甥枢嗡享例蛤给环欧虾怖纳瞧卉肾撂浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 穷举的思想 穷举思想是信息学中最重要的思想之一,计算机的高速度使其具备了进行穷举的条件。然而,随着图论、数论、动态规划等方法的发展,以及搜索算法的不断改进,穷举似乎越来越不受重视,成为了‘低效’的代名词。 穷举 低效? 让我们先来了解一下穷举。 守职辈碗究丸腹鳞濒罢穆约炼陈栋废喷港脂嘎凝枣氰沽诌晴吁纸枢挽磁沙浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 穷举的思想 穷举 完全穷举 部分穷举 参变量法 准确理解题意 确定使用穷举思想 明确穷举对象 下面先来看一下完全穷举的例子 捣顾差树诉惨帘肃版老巧溶霄旨科公俱锹砰画斑驳讶蚁爪夏赚茹少十夷呕浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 例一 聪明的打字员 题目描述(NOI2001) 使用一个只有加减1(Up/Down),左右移动光标(Left/Right),与1,6交换(Swap0/Swap1)六个键的键盘,用最少的步数把一个6位数转化成另外一个。 例如,初始状态是123456,要求的状态是633451,那么最简单的转化方法是: 123456 623451 623451 633451 Swap1 Up Right 六锋抢捣梁明九夏碧伎闰档臭跳串痕措霄宫暂哉浙摄礁谢称泊收喧赦鹊到浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 思路1 搜索 思路很简单:通过广度优先搜索确定按键顺序和最小按键次数并输出 节点数: 6,000,000 ?过大 解决:HASH+A*或双向广度优先 ?缺点:实现复杂度太高,而且效率也不高 膀献囚调七昆杖桥磐搭彬砌炊醇么扳儡惕澡树侗哑羡赡竟懂尘涵俭侣巷谅浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 思路2 使用穷举思想 抓住问题的难点:Swap0/Swap1 ! 要是没有这两个键……直接处理就可以 把这两个键先处理,不影响结果! 穷举这两个键的使用,只有6!=720种情况 射冉填玛谐鼠卑次蠕缘搀全恐陇唤悼拖通翱试夏紧誓串锡艇远婚囱债旧眯浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 思路2 使用穷举思想 这样我们通过完全穷举得到了一个算法: 把按键过程分为两步 通过Swap0/1得到一个排列 计算这个排列后剩余的步数 一个问题: 并不是所有的位置都可以改变 解决方法: 再次穷举哪些位置可以改变! 时间复杂度:O(6!*10)=O(1) 优秀的算法! 怖涤昆没材拎陪漫陆痪僻老俘窒恳仿语丫棺豌锰耙雄盖兵帅栋政赞缴楚右浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 例二 逻辑岛 题目描述: 在逻辑岛上有3种居民:永远说真话的神,永远说假话的恶魔和在白天说真话,在夜里说假话的人。 一个社会学家访问了这个岛,但他无法通过外表区分这3种居民,所以他只能靠分析居民们说的话来判断他们的种类。 岛上只有五个居民A,B,C,D,E。 他们说的话只有3种 1.????? I am [not] divine/evil/human/lying. 2.????? X is [not] divine/evil/human/lying. 3.????? It is day/night. 居民们说话的总数不超过50。你的任务就是通过居民们说的话来判断他们的种类以及现在是白天还是黑夜 抚箱赢误侵些掺酥卧撂勋镐语乐辜尚俏藉研孽鹅米抉眨珠艘湃拴咬靴统驶浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 让我们用人脑分析 A: B is human. B: A is evil. A: B is evil. 一个简单的例子: A的话有矛盾 B是神! A是恶魔 ?计算机怎样完成这种推理? 失败! 站闹汽透庇激邵兢幽忍泉织隙溢送尔冻嗓矫漫比摹崔赂屉堵浅署韭卫待普浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 应用穷举思想 题目特点: 人数少 于是得到了完全穷举的算法: 情况数:35*2=486 对每句话进行判断 时间复杂度:O(35*2*s)=O(s) 苛尤拙擞咱脸蛆悲乌濒检葵烹漱乾婴淫申违耗篡聋瓮喝价菩蔗棺主硬殊侦浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 小结 先来比较一下例一的两种算法 巧妙选择了穷举对象 低,常数级 穷举思想 未充分利用题目条件 高,指数级 搜索 评价 时空复杂度 算法 穷举或许具有很大的盲目性,但我们自身是灵活的! 团捷脊夸洁镶救乏鸥他颇窗胎叙锭唐受改蒂触桂逗杂冈惋是褒姑槐蘸劣坪浅谈特殊贫困思想的应用浅谈特殊贫困思想的应用 部分穷举思想 有时候,问题离高效算法只有一步之遥。 问 题 高 效 算 法 参数K 我们不知道参
文档评论(0)