摘要: 873 思路 这是一道非常基础的题,目的是帮助大家回顾快排相关的知识。大家完成此题之后应该就对快排有比较深刻的印象了。 对于整个快排的流程,题目描述中已经给了清晰完整的伪代码。需要自己加工的部分就是,需要手动记录下每次划分后的分界线,也就是划分时的变量$i$。 由于数据较为简单,要求的层数也较浅,实 阅读全文
posted @ 2017-10-31 15:07 AlvinZH 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 891 ModricWang's Number Theory II 思路 使得序列的最大公约数不为1,就是大于等于2,就是找到一个大于等于2的数,它能够整除序列中的所有数。 考虑使得一个数d整除数组中所有数的代价: 如果一个数不能被b整除,那么可以花费x的代价删掉它,或者通过多次加1使得它可以被d整 阅读全文
posted @ 2017-10-31 15:06 AlvinZH 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 862 AlvinZH的儿时梦想——运动员篇 思路 难题。 应该想到,不管给出的数据如何,每一个淘汰的人不会对最终答案产生任何影响,所以每次淘汰就把人除掉就可以了,最后剩下的两个人计算它们从开始到相遇需要的时间就可以了。 首先对每个人根据初始位置进行排序,因为相遇总是先发生在相邻的两个人身上的,所以 阅读全文
posted @ 2017-10-31 15:03 AlvinZH 阅读(299) 评论(0) 推荐(0) 编辑
摘要: Bamboo的饼干 分析 从两个数组中各取一个数,使两者相加等于给定值。要注意去重和排序 难度不大,方法很多,基本只要不大于O(n^2 ) 的都可以过。本意想考察二分搜索 还可以借助stl中的map,set以及lower_bound等,当然只用数组也可以做。由于数据范围不大,也可以直接用数组下标来计 阅读全文
posted @ 2017-10-31 14:54 AlvinZH 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 872 AlvinZH的儿时梦想 坦克篇 思路 简单题。仔细看题,题目意在找到直线穿过的矩形数最小,不能从两边穿过。那么我们只要知道每一行矩形之间的空隙位置就可以了。 如果这里用二维数组记住每一个空隙的位置,一是没有必要,二是记录了还要大量的处理才能得到答案。反正我是没想过要怎么处理。 可以发现,要 阅读全文
posted @ 2017-10-31 14:34 AlvinZH 阅读(394) 评论(0) 推荐(0) 编辑
摘要: Bamboo的OS实验 分析 首先理解题意,要完成不同数量的不同命令,但是完成相同的命令之间必须有n个间隔,为使得时间最短,自然优先用其他命令来填充这n分钟的时间,由于数量少的命令可以用来填充空隙,所以次数最多的命令是起作用最大的。而且注意到,每次具体执行的是哪个命令并不影响时间,只与命令的数量有关 阅读全文
posted @ 2017-10-31 14:33 AlvinZH 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 890 画个圈圈诅咒你 思路 简单题。题目中的圆并没有什么实际作用,简化成 线段重合 问题会更好理解些。 暴力解法:使用双重for循环会T到想哭,记住最直接的方法一般是过不了题的。 解法一:二分查找。空间较小,时间更长。 把圆相离的问题转换为线段相交的问题,按先起点后终点的顺序升序排列这些圆(线段) 阅读全文
posted @ 2017-10-31 14:30 AlvinZH 阅读(616) 评论(0) 推荐(0) 编辑