汉诺塔问题December 6, 2018 Learn / Competitive Programming题面 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。
滑动窗口December 6, 2018 Learn / Competitive Programming思路:单调队列 以求最小值为例 在读取每一个数 ai 的过程中,判断队尾的数是否大于ai,如果大于则证明队尾的数已经没有意义了,因为*它已经不可能成为现在及以后所有窗口内的最小值*,不妨弹出,重复以上操作,直到ai小于队尾的数,再把ai放到队尾 当现在的长度已经达到窗口的长度时,每一次都会输出最小值,因为队列是单调递减的,第一个数一定是现在窗口内最小的数,直接输出 在队尾添加的过程中,*要始终保证队列里的数都在窗口内*,当区间长度大于窗口长度时,要从队首弹出 自己遇到的坑 *队列内存储的是这个数的位置,不是这个数的大小*,大小通过数组类似映射表示