NOIP2017普及组题解

传送门:NOIP2017普及组复赛试题

https://wenku.baidu.com/view/e3232b1eac02de80d4d8d15abe23482fb4da02e9.html

//T3、T4代码和详解待更新

T1 成绩(score)
感觉是历年来最水的一道T1了,甚至都不需要浮点数运算。
score=(a*2+b*3+c*5)/10;


T2 图书管理员(librarian)
因为只是一道T2,数据范围很宽泛,因此只要纯模拟就可以了,对于每个查询,所有图书挨个比较一遍,可以拿就打擂台取小。
O(n*q*8) //其中8为编码的最大长度

当然还有更高效的做法,对于0-9每个数字结尾的编码,分别以0-9为根倒着构造字典树,构图时间O(n*8),查询的时候用宽度优先搜索,搜到满足条件的子树的叶子节点就结束,有同级就取小的,回溯输出路径。
期望O(0.8*n*q) //所有的编码平均分布在10棵树上

传送门:字典树相关知识

http://blog.csdn.net/jiutianhe/article/details/8076835


T3 棋盘(chess) //详解待更新

情境太眼熟了吧!棋盘,从左上角走到右下角,对于不同的状态走路有不同的代价,有限的状态。首先考虑动态规划,但是走路能走四个方向不太好填表(顺序填表就有后效性了),所以用记忆化搜索(多维最短路也是可以的)就OK了。


T4 跳房子(jump) //详解待更新

不难发现,机器人的灵活性变高后,之前可以跳跃的总路线一定是现在可以跳跃的总路线的子集。因此,当灵活性变高之后,相应能获得的分数一定>=之前能够获得的分数
眼熟吗?没错,就是二分答案。能够获得分数的最大值可以用简单的动态规划获得。

传送门:二分答案讲解

https://www.cnblogs.com/fenghaoran/p/6391052.html

补充传送门:二分查找相关知识

https://www.cnblogs.com/shuaiwhu/archive/2011/04/15/2065062.html

你可能感兴趣的:(NOIP2017普及组题解)