ImageVerifierCode 换一换
格式:PDF , 页数:3 ,大小:491KB ,
资源ID:3733691      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3733691.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(NOIP2017普及组复赛-解题报告.pdf)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

NOIP2017普及组复赛-解题报告.pdf

1、衢州市兴华中学 NOIP2017 普及组复赛 By 冯明浩 第 1页 / 共 3页 NOIP2017普及组复赛 -解题报告 衢州市兴华中学 By 冯明浩 Score 成绩 题目大意 给出三个整十数 A,B,C,求 A*20%+B*30%+C*50%的值 考察算法 模拟 算法一 直接粗暴地输出 A*0.2+B*0.3+C*0.5 时间复杂度: O(1) 期望得分: 100 算法二 由于分数均为整十数,先将分数各除以 10,再直接输 A*2+B*3+C*5。这样就避免了精度问题 时间复杂度: O(1) 期望得分: 100 librarian 图书管理员 题目大意 给出 N个数 Ai,再进行 Q次询

2、问,找后缀为给定数 Bi的最小的 Ai 考察算法 模拟 算法一 将 Ai及 Bi都转化成字符串。每次询问都对 N个数进行后缀比较,挑出个最小的 时间复杂度: O(N*Q*len) 期望得分: 80 算法二 对算法一的比较进行优化 构造出 n10 ,对于 Ai,直接 Ai Mod 10len,判断是否相等。这样每次比较的时间复杂度优至 O(1) 同时 先将 Ai排序,再每次从小到大查询,一旦找到就停 时间复杂度: 小于 O(N*Q)(一般情况) 期望得分: 100 算法 三 读入 Ai时进行处理,构造 ansx数组,记录询问 X的最小值。对于每个 Ai,依次取出其后 1、 2、 3 len位,修

3、正其的最小值。这样每次查询,就可以 O( 1)出结果了 时间复杂度: O(N*len) 空间复杂度: O(max(Bi) 期望得分: 100 Chess 棋盘 题目大意 给出一个 N*N的矩阵,其中部分格有颜色 每次可以从一个格向上下左右四个方向移动一格(不能越出矩阵且满足条件),根据两个格子的颜色有不同的代价 求从左上角走至右下角的最小代价 考察算法 最短路(动态规划) 算法一 直接暴力地按照题意进行 DFS 时间复杂度: O( nn*2 ) 期望得分: 30 算法二 以左上角为起点,右下角为终点,刷四个方向的 SPFA 衢州市兴华中学 NOIP2017 普及组复赛 By 冯明浩 第 2页

4、/ 共 3页 (也可预先对相邻格建好边,刷最短路 SPFA或 DIJ或进行记忆化 DFS) 时间复杂度: O(k*n*n) 期望得分: 100 Jump 跳房子 题目大意 给出 N个格子的位置 Xi与价值 Pi,从起点 0往右跳跃,初始跳跃的距离只能为 d 同时可以花费金币来调整其跳跃距离,花了 t 个金币时可跳跃的距离为max(1,d-t)(d+k) 每遍历一个格子就会获得其代价 Pi,求要获得总价值为 K所需最少的金币数 考察算法 二分、动态规划、单调序列(堆) 算法一 从小到大枚举所需金币数,用 O(N*N)的 DP进行 check,一旦发现可行就为答案 时间复杂度: O(max(Ai)

5、*N*N) 期望得分: 20 算法二 分析发现,枚举的金币数越多,跳跃范围越大,总价值一定越多 满足二分答案的单调性,于是将算法一的枚举答案变为二分枚举 时间复杂度: O()max(2log Xi *N*N) 期望得分: 50 算法三 分析一下 DP的转移方程: Fi=max(Fj)+Pi(max(1,d-t) ai-aj d+k) 就会发现 DP的 j这次循环是为了找 F1i-1中的最大值,自然而然就想到了用堆优化 堆中存放 F1i-1,若堆顶距当前 Xi大于 d+k,就丢掉该元素(再也没用) 否则若堆顶距当前 Xi小于 max(1,d-t),就暂存在临时数组中,最后在当前解更新好后记得塞回

6、去 则 Fi=Fheap1+Pi 时间复杂度: O()max(2log Xi *N*k* N2log ) 期望得分: 80 算法 四 继续优化算法三的 DP: 那些离当前 Xi太近的实际上完全没有必要塞入堆中,那么再另开一个变量 j 记录当前往堆中塞入的最后一个元素。每次将与当前 Xi的距离大于等于 max(1,d-t)的塞入堆中,只要检查一下堆顶是否太远即可,就保证了每个节点当且仅当入堆一次,时间复杂度中 k就消去了 时间复杂度: O()max(2log Xi *N* N2log ) 期望得分: 100 算法 五 在算法四的基础上再思考一下,其实也没有必要用堆了。因为 Xi是在不断增大,那么对于 Fx=Fy,显然距离起点远的更有用,即一旦 Fy进堆, Fx就没有存在的意义了( XxXy);若远的更大,则更不必说;小的话,就要暂留着,以备做前后的“中转站”。 这样的话,维护一个单调下降的单调序列来代替堆,每次将序列前面距离太远的干掉,后面再如上进行维护,每次抓序列的头就是前面的最优解: Fi=Fquehed+Pi 于是连堆的 N2log 也成功去掉了 衢州市兴华中学 NOIP2017 普及组复赛 By 冯明浩 第 3页 / 共 3页 时间复杂度: O()max(2log Xi *N) 期望得分: 100 另:除了上面的算法外,不排除还有其他更优的解法。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报