- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
枚举、搜索与动态规划试题精讲3
枚举、搜索与动态规划试 题 精 讲 朱全民 枚举 所谓枚举法,指的是从可能的解集合中一一枚举各元素,用题目给定的检验条件判定哪些是无用的,哪些是有用的.能使命题成立,即为其解。一般思路: 对命题建立正确的数学模型; 根据命题确定的数学模型中各变量的变化范围(即可能解的范围); 利用循环语句、条件判断语句逐步求解或证明; 枚举法的特点是算法简单,但有时运算量大。对于可能确定解的值域又一时找不到其他更好的算法时可以采用枚举法。 侦探推理 (NOIP2003-2) 证词中出现的其他话,都不列入逻辑推理的内容。 明明所知道的是,他的同学中有N个人始终说假话,其余的人始终说真话。 现在,明明需要你帮助他从他同学的话中推断出谁是真正的凶手,请记住,凶手只有一个! 要求: 判断谁是罪犯? 分析 这道题的关键点是“如何能够快速正确实现出来” ,事实上这道题对编码能力的要求要大于对算法本身的要求。由于这道题的数据范围并不是很大,但需要进行“字符串处理”这种比较麻烦的工作,因此在比赛时就可以采用效率低一些的枚举算法来换取编码上的简单。 推荐的算法分为两步: 1.预处理每个人的每一句话,并把它们分类处理; 2.枚举罪犯和当前星期几,找出所有可能发生的情况。 下面我们来逐步细化一下每一步的算法,对于第一步,我们希望的是把一些杂乱的不好处理的“字符串信息”转化为相对比较好处理的信息。为此,我们可以通过把“信息”进行分类的方法使得对于每一类信息,更加方便的处理(即我们可以用一个或者几个变量来表示),由题目描述可以发现语句可分为三类: 分析 1.指明i是否是罪犯的语句; 2.指明今天是星期d的语句; 3.没有意义的语句(不符合格式要求)。 我们必须要说明的是任何不符合格式要求的语句都将被划分到第三类中去,这样在处理每个语句的时候就必须要考虑该语句是否符合格式要求,通过以上的处理,我们对于每一个语句用几个变量就可以表示了。 对于第二步的细化,我们在枚举完罪犯和当前星期几之后,就可以比较方便的判断每一句话的真伪了,这样我们再根据每个人所说的话把人进行分类。 1.没说任何一句有意义的话; 2.只说真话; 3.只说假话; 4.既说真话也说假话。 分析 需要注意的是,对于第一类人我们既可以把他当成说真话的,也可以把他当成说假话的,而如果第四类人存在的话,那么从他本身就可以推出矛盾了。 最后,如果对于罪犯i存在一个d使得当前情况是可能的,我们就说i就是可能的罪犯。 [时间效率] O(MP|Day|) (其中Day={Sunday,Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}) 优化 我们可以发现在对罪犯和当前星期几进行“双重枚举”时,进行了很多重复的操作,于是我们想到,能不能不枚举是当前星期几?这样我们把这类语句与判断罪犯的语句分离,可以先由判断罪犯的语句中确定一部分人肯定说真话,一部分人肯定说假话,剩下的一部分人就要根据他所说的当前星期几的语句来判断了,首先我们假设所有人判断星期的语句不自相矛盾,这样每个人将在判断这类问题里面至多有一个答案,我们便可以统计判断当前是星期d的总人数,于是改进后的算法对于每一个可能的罪犯,先用O(p)的时间处理所有的话,再用O(|Day|)的时间枚举星期几。这样,改进后算法的复杂度就是O(m(p+|Day|))。 那么我们可不可以再进一步,把算法优化到线性?这里面可以比较明确地告诉大家,是可以做到的,具体的算法类似于上面的按照语句的种类分离语句,只是分离得更细,处理得更复杂,在这里就不做赘述,留给大家思考。 立方体问题 子串 给定一个由自然数串联而成的无限数列1234567891011121314……(母串) 求任意一个长度不超过200的数列(子串)在其中最早出现的位置。 分析: 首先,由于母串可无限扩充,显然我们不可能把它全部生成出来。 如果边生成母串,边判断所生成的数串是否包含给定的子串,即使是使用字符串处理中高效的KMP算法,耗费的工作量也是巨大的。 1121314 先枚举第1位1 自然数1之后为2,3,…… 母串中形如123…… 与子串从第2位开始不符 枚举前2位11 自然数11之后为12,13…… 母串中形如111213…… 与子串从第3位开始不符 如何优化呢? 较好的方法是另辟蹊径: 刚才我们枚举的是母串的每一位,不妨换一个角度,从子串着手。 先来观察一些片断: 12345678910111213141516…… 很自然得到算法: 枚举子串所包含第一个完整的数a的位数La。 假设a在母串的第k位出现(k=La) 判断接下来由a生成的序列是否与子串吻合。 如果吻合,则最优解的判断: (1) LaAns_L (2)
您可能关注的文档
- 文明的重生文艺复兴一课说明和反思.ppt
- 文档编辑地基本操作.ppt
- 文物架具体技术要求与数量.doc
- 文献信息检索和论文作课程纲要.ppt
- 文献传递系统注册流程和使用方法4.ppt
- 文献和考古中的夏文化.ppt
- 文献检索和阅读论文选题.ppt
- 文献检索课1绪论及基本概念.ppt
- 文献管理软件EdnoteX简介.ppt
- 文献综述撰写的技巧与方法.ppt
- 湖南省衡阳市第八中学2026届高三上学期第一次月考物理(原卷版).doc
- 浙江省普通高中尖峰联盟2026届高三上学期10月联考英语(原卷版).doc
- 四川省绵阳市南山中学实验学校2026届高三上学期10月月考英语(原卷版).doc
- 湖南省衡阳市第八中学2026届高三上学期第二次月考历史 Word版含解析.doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题09 功和机械能(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题10 内能及其利用(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题07 压强(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题01 机械运动(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(解析版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(原卷版).doc
最近下载
- NFPA 25-2020 水基消防系统检验、试验和维护标准.pdf VIP
- 2025《S71200PLC编程及应用技术》试题试卷及答案.docx VIP
- 2025年物理八年级上册第一章思维导图.pdf VIP
- 政府经济学第五章政府宏观管理经济的基本原理.ppt VIP
- 新人教版八年级物理上册课时5分钟检测.pdf VIP
- 2025海南三亚中心医院(海南省第三人民医院)公开(考核)招聘员额制工作人员145人笔试模拟试题及答案解析.docx VIP
- 燃气施工安全培训课件.ppt
- 《全面合规管理培训课件》.ppt VIP
- 2025抽水蓄能电站风险评估导则.docx VIP
- 射频消融术患者的护理查房.ppt VIP
原创力文档


文档评论(0)