- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NEERC 2005题目分析 刘汝佳 Problems A. Area 51 B. Brackets Removal C. Cactus D. Double Patience E. Exploring Pyramids F. Feel Good Problems G. Guards H. Hardwood Cutting I. IP Networks J. Joseph’s Problem K. Knockdown 15~25 AC 0~14 AC A. Area 51 给出m(=100)个点(xi,yi), yi0, 每个点处有一个字母. 求出所有x轴上点, 使得从该处看去所有字母从左到右组成一个给定的顺序 分析 求出每两个点连线与x轴交点, 排序后得到m2个区间. 在区间交界处交换二个点在视角中的位置. 问题一 多线共点, 可以任意进行交换么? 方案一: 按(A,B),(A,C),(B,C)交换 ABC?BAC?BCA?CBA 方案二: 按(B,C),(A,B),(A,C)交换 ABC?ACB?BCA?BAC X 解决方法: 共点的情况先按第一个点排列, 再按第二个点排列, 每个分量排序时都按y从小到大排 问题二 如何判断当前字母排列是否正确? 方案一: 每次逐个字母比较 方案二: 记录字母正确的位置数, 每次更新 总时间复杂度: O(m2logm) (排序+扫描) B. Brackets 给一个长度为n的表达式, 包含字母、二元四则运算符和括号, 要求去掉尽量多的括号 去括号规则 A和B是表达式, 则A+(B)可变为A+B A和B是表达式, 则A-(B)可变为A-B’, 其中B’为B把顶层+与-互换得到 A和B为term, 则A*(B)变为A*B A和B为term, 则A/(B)变为A/B’, 其中B’为B把顶层*与/互换得到 两种思路 思路一: 递归处理表达式 思路二: 构造表达式树, 必须加括号时才加 C. Cactus 如果一个无向图连通, 且每条边都最多在一个简单圈里, 则称它为Cactus. 判断一个图是否为Cactus. 如果是, 统计它有多少个生成子图(包括它自己)是Cactus 分析 生成树即顶点集不变, 边集为原图边集的子集. 原图的边有两种: 不在任何圈中(桥)、在恰好一个圈中. 桥是不能删除的 每个圈可以不删除边, 也可以恰好删除一条边. 注意如果删除两条或更多的边则圈里一定会有两个点不连通, 因此一个包含L条边的圈的删边方案为L+1. 各圈独立 最后答案为所有(Li+1)的乘积. 关键是找Li D. Double Patience 36张牌分成9堆, 每堆4张牌. 每次可以拿走某两堆顶部的牌, 但需要点数相同. 如果有多种拿法则等概率的随机拿. 比如9堆顶部的牌分别为KS, KH, KD, 9H, 8S, 8D, 7C, 7D, 6H, 则有5种拿法(KS,KH), (KS,KD), (KH,KD), (8S,8D), (7C,7D), 每种拿法的概率均为1/5. 如果最后拿完所有牌则游戏成功。 按顺序给出每堆牌的4张牌, 求成功概率. 分析 用9元组表示当前状态, 即每堆牌剩的张数 状态总数为59=1953125 设d[i]表示状态i对应的成功概率, 则d[i]为后继状态的成功概率的平均值 E. Exploring Pyramids 给一棵多叉树, 每次尽量往左走, 走不通了就回溯, 把遇到的字母顺次记录下来. 如下面5个图的序列均为ABABABA 给一个序列, 问有多少棵树与之对应 分析 设d[i,j]为子序列S[i…j]对应的树的可能性, 则d[i,i]=1. 注意S[i]不等于S[j]时d[i,j]=0, 因为起点和终点应是同一点. F. Feeling Good 给一个正整数序列ai, 求出一段连续子序列al,…ar, 使得(al+…+ar)*min{al,…,ar}尽量大. 分析 因为所有数都是非负的, 所以确定最小元素后应尽量往左往右延伸. 关键: 对于每个数i, 求出Li和Ri使得Li~Ri内的所有数都不小于i, 而a[Li-1]和a[Ri+1]都小于a[i]. 为了方便起见设a[0]和a[n+1]都为负无穷大. 由对称性, 求出Li后也可求出Ri 快速求出所有元素的Li 设d[i,j]表示区间[i…i+2j)内的最小值, 则可以在O(nlogn)的时间内算出所有d[i,j] 根据d[x,j]和ai的大小关系逐步缩小范围 G. Guards 有四类保安, 以特定周期工作. 保安工作分为四个时段: 工作日白天、工作日晚上、周末白天、周末晚上. 要求四类工作的人数不变(即不能某周日晚上有3个保安, 而另一个周六晚上只有2个保安). 雇佣尽量少的总人数, 使得每个工作日白天至
文档评论(0)