欢迎来到天天文库
浏览记录
ID:29741911
大小:20.30 KB
页数:13页
时间:2018-12-23
《xx,多校联考,解题报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划XX,多校联考,解题报告 Doubly-sortedGrid GCJ09FinalProblemC 【简要描述】 给出一个N*M的方格纸,在方格内可以任意填写字母a到z,但是必须保证,任意一行从左到右字母的字典序必须保证不降,同时任意一列也必须保证字典序不降。 现在一些格子已经填上了一些字母,现在要求将剩余没有填写的空格子填满,同时要使得整个方格纸上满足双调不降的要求。问总的方案数取模
2、10007的值。 Smalldataset N,M≤4 Largedataset N,M≤10 【分析与算法设计】 看到这个问题当然最简单的想法就是搜索了。 不过,注意到每一个格子可以填26种不同的字母,所以简单考虑就可以发现,对于即使单独1*M的方格纸,可能填写的数目也将达到O(26M)的规模——所以简单的搜索是绝不可行的。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新
3、项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划XX,多校联考,解题报告 Doubly-sortedGrid GCJ09FinalProblemC 【简要描述】 给出一个N*M的方格纸,在方格内可以任意填写字母a到z,但是必须保证,任意一行从左到右字母的字典序必须保证不降,同时任意一列也必须保证字典序不降。 现在一些格子已经填上了一些字母,现在要求将剩余没有填写的空格子填满,同时要使得整个方格纸上满足双调不降的要求。问总的方案数取模10007的值。 Smalldatase
4、t N,M≤4 Largedataset N,M≤10 【分析与算法设计】 看到这个问题当然最简单的想法就是搜索了。 不过,注意到每一个格子可以填26种不同的字母,所以简单考虑就可以发现,对于即使单独1*M的方格纸,可能填写的数目也将达到O(26M)的规模——所以简单的搜索是绝不可行的。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的
5、业务技能及个人素质的培训计划 但是,同时我们也可以注意到,其实我们在进行搜索的时候进行了很多的重复搜索,所以我们需要尝试确立一些搜索的状态来进行记忆化搜索,或者进行递推。 算法1: 注意到在Small中,虽然总的方案数很多,但是注意到行数和列数都不是很大,因此我们可以尝试进行状态压缩的动态规划。 沿用状态压缩动态规划的一般方法,我们记录扫描线上的状态进行转移。 如有图所示,其实我们需要记录的状态仅仅是紫色格子 中的字母填写情况,蓝色格子中的已经填写过的字母情况我们其实就不用知道了——通过紫色格
6、子已经可以反映出蓝色 格子的字母状况了。 然后我们只要枚举橘红色格子填写什么字母然后进行状态的转移即可。 那么考虑紫色扫描线上的点只有O(M),相应的,状态数 即为O(26M),这在Small中,是完全可以接受的。 至于一些格子已经填写了一些字母,我们只需要在转移 到具体的格子然后再进行判断即可,算法并没有什么关键的转变。 时间复杂度:O(NM26M )目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司
7、新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 空间复杂度:O(NM+26M) 期望得分:Small通过 观察到在Large中,虽然N和M仍然不大,仅仅10而已,但是,考虑到26个字母的可能填写方案,显然的,仍和关于字母具体信息的扫描线记录方式都是完全行不通的。我们知道,记录一个位置到底是什么字母,就需要花费26的记录代价,这是导致我们无法记录信息的关键问题。 那么,我们能不能分离这一问题,并不去记录某一个位置是什么字母,而去记录每一种字母到底
8、占了哪些位置呢? 显然的! 算法2: 这里我们就需要利用到双调有序这一重要性质了。 如果在格子(x1,y1)内的字母比(x2,y2)内的字母字典序小,那么则必然有这样的限制条件:x1≤x2,y1≤y2。 所以,对于字母c1,以及恰好比其大一个字典序位置的字母c2,其分界线一定是一个从左下角到右上角的连续折线,并且任意一点只会向上,或者向右: 如右图所示,我们这里标出了字母a,b,c下方的分界 线,注意这里字母c所
此文档下载收益归作者所有