HDU 4193
题意:给n个数字组成的序列(n
思路:
这题看到数据规模觉得只能用最多O(nlogn)的算法,然后想到了之前刚做过的有关最小表示法的题,但还没证明出一个做这题有效的算法出来。
后来看过题解,发现用的最多的方法是单调队列,然而我对这个知识点知之甚少orz
/*科普君:from单调队列
单调队列是指:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只...
分类:
其他好文 时间:
2015-07-27 00:24:41
阅读次数:
158
纸牌游戏解题报告在写题目之前,还是要讲一下队列。队列:“先进先出”,又称公平队列。注意:队列不需要定义大小。头文件:定义/声明方式:queue s;push():入队、pop():出队front():取队首元素,但不删除,返回queue内的第一个元素back():返回queue内的最后一个元素题目:...
分类:
其他好文 时间:
2015-07-26 15:33:52
阅读次数:
130
题目描述:http://ac.jobdu.com/problem.php?pid=1512
用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。解析:
定义2个栈s1, s2
1. 开始时,将元素push进s1
2. front()或pop()时,将s1的数据,出栈,顺序压入s2; 此时发现 s2 的出栈顺序即队列的出队列顺序。
3. 再次push时,仍然...
分类:
其他好文 时间:
2015-07-25 23:04:59
阅读次数:
144
两个栈实现队列两个队列实现堆栈问题,网上有很多资料。这里仅仅是叙述操作方法的介绍觉得至少。两个栈实现一个队列思想:假设两个栈分别为s1,s2。对s1进行入队,出队时,先推断s2是否为空,假设是则将s1中元素压入s2并弹出最上面元素,假设不是,则直接弹出s2最上面的元素。EnQueue(s1,s2,k...
分类:
编程语言 时间:
2015-07-25 21:14:51
阅读次数:
120
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25076689 题目:用两个队列模拟一个栈,即用两个队列的出队和入队操作。来实现栈的出栈和入栈操作。 思路:略微画下草图。便不难想出该题的解决方法。思路例如以下: 如果有两个队列Q1和Q...
分类:
其他好文 时间:
2015-07-25 16:36:14
阅读次数:
136
【摘要】本文介绍单生产者单消费者模型的队列。根据写入队列的内容是定长还是变长,分为单生产者单消费者定长队列和单生产者单消费者变长队列两种。单生产者单消费者模型的队列操作过程是不需要进行加锁的。生产者通过写索引控制入队操作,消费者通过读索引控制出队列操作。二者相互之间对索引是独享,不存在竞争关系。...
分类:
其他好文 时间:
2015-07-24 20:51:12
阅读次数:
154
在一定大小的像素图像中,将同色区域的颜色值替换为其他颜色值,从而产生新的图像,输入数据,图像大小,指定的像素点坐标,要替换成的颜色。一开始出队操作写错了折腾半天,当队列中只有一个元素是出队后要将队首指针指向队尾指针。取定初始位置的坐标后,在此位置上下左右搜索,将满足要求的位置入队,然后经过此一层循环...
分类:
其他好文 时间:
2015-07-24 12:38:59
阅读次数:
121
//单调队列求滑动窗口的最大值和最小值
//题意是给一个n个数,在每k个数区间内
//求最大值和最小值
//单调队列:队列中的元素是单调的。
//求最小值的时候:进队的时候将队尾部大于当前要进的元素全部出队
//这样,队列的头部就是最小值
//反之,求最大值也是一样
#include
#include
#include
#include
using namespace std;
co...
分类:
其他好文 时间:
2015-07-22 22:44:19
阅读次数:
226
转自:http://www.cppblog.com/shyli/archive/2007/04/06/21366.html优先队列用法在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的qi;通过,greater>qi2;其中第二个参数为容器类型。第二个参数为比较函数。故示例2中输出结果为...
分类:
其他好文 时间:
2015-07-21 23:29:58
阅读次数:
191