摘要:
题意:给定一个序列,从左到右每次的滑动一个窗口,最大值和最小值是多少。 析:普通的方法可能会超时,维护两个单调队列,一个单调递增的,一个单调递减,每次把最值保存下来。 也可以用线段树,RMQ等数据结构,每次查询区间的最小值和最大值。POJ 交G++ 死活超时,交C++才过。 代码如下: 阅读全文
摘要:
题意:给定一个格子,有一些位置有球,每次可以向前移动一些位置,但不能超过前一个小球,问谁会胜利。 析:由于两个人都是足够聪明,所以我们可以把每两个相邻的球分成一个组,因为先手移动前一个移动多少位置,后手也可以移动第后一个, 如果是奇数,可以在0号位置放一个,没有影响,然后就成一个Nim组合游戏了。 阅读全文