![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
------栈、队列
_zhj
加油!
展开
-
HDU5945 Fxx and game
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5945 题意:给3个数x, k, t。经一系列操作后,使x变为1,求最少的操作次数。具体操作为:每次x可以减去一个数0~t,或者除以k。 解析:本题使用dp,但是需要用单调队列进行优化。 动规需要从1开始,一直往上计算,直到x为止。 递归公式为:dp[i]=min(min(dp[i-t]~dp[原创 2017-05-12 19:23:11 · 276 阅读 · 0 评论 -
单调栈
单调栈是指栈中元素是按照严格单调递增或者单调递减的顺序,有以下两个性质(以单调递增栈为例): 1、从栈顶到栈底的元素是单调递增的 2、越靠近栈顶的元素,越后进栈。 单调栈只能在栈顶进行操作,即插入或者删除元素。操作过程(以单调递增栈为例): 如果当前元素是e,从栈顶开始遍历元素,如果栈顶元素小于等于e,则栈顶元素出栈,直到栈顶元素大于e或者栈空为止,再将e压入栈中。 一个单调递增原创 2017-05-13 09:37:45 · 201 阅读 · 0 评论 -
HDU4857逃生 拓扑排序+优先级队列
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的通道很窄,大家只能排成一行。 现在有n个人,从1标号到n。同时有一些奇怪的约束条件,每个都形如:a必须在b之前原创 2017-05-17 19:50:41 · 299 阅读 · 0 评论 -
单调队列
单调队列是指队列中的元素按照严格单调递增或者单调递减的顺序。有两个性质(以单调递增队列为例): 1、从队头到队尾的元素是按照严格单调递增的,如(1,2,3,4,5)。 2、越靠近队头的元素越先入队 单调队列可以从两端进行操作(以单调递增队列为例): 入队:如果当前元素是e,从队尾开始检查,删除大于等于e的队尾元素,直到队尾元素小于e或者队列为空,然后将e插入队尾。如果队列大小有限制,则在入原创 2017-05-13 09:40:20 · 229 阅读 · 0 评论 -
二叉树非递归
1、先序非递归 先序遍历:根->左->右 先序非递归最简单,使用栈保存节点。节点出栈后,直接访问(输出值或者保存下来),然后将右孩子加入栈,再将左孩子加入栈(注意左右的顺序)。 #include <iostream> #include <vector> #include <algorithm> #include <stack> u...原创 2019-08-12 15:00:59 · 320 阅读 · 0 评论