思路: 贪心,
每次删除最上面的边。。
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int M = 200008;
deque q;
vector vi;
int first_edge[M],next_edge[M],to[M],ty[M],sum;...
分类:
其他好文 时间:
2014-10-11 10:31:35
阅读次数:
207
题目描述:http://poj.org/problem?id=2823思路: 求某个区间的最大与最小值,可以使用两个单调队列,由于需要在队列前删除元素和在队列后增加元素,所以考虑使用双端队列; 在双端队列中记录元素的下标,另外,双端队列为单调队列,满足单调非递增或单调非递减,则队列第一个元素为区.....
一、题目 编写支持双端队列的例程,插入与弹出操作均花费 O(1)时间二、解答 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的数据结构。 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 基本操作:在双端队列两端插入与删除。 ADT...
分类:
其他好文 时间:
2014-10-06 01:44:29
阅读次数:
341
vector 可变数组,内存空间是连续的,容量不会进行缩减。支持高效随机存取,即支持[]和at()操作。尾部插入删除效率高,其他位置插删效率较低;
list 双向链表,内存空间可不连续,不支持随机存取。插入和删除的效率很高;
deque 双端队列,内存空间是多个连续的内存块,在一个映射结构中保存对这些块以及顺序的跟踪,可利用的内存更大,且内存大小是可以自动缩减的。支持随机存取,但是随机存取性能没有vector 好。首尾插入效率高,其他位置插删效率低;...
分类:
其他好文 时间:
2014-09-26 19:20:08
阅读次数:
245
一个笔试题,当时竟然没想出来,现在实现下 1 /* 2 用两个栈实现双端队列 3 栈s1,s2。 4 pushback()和popback(),必须在s2为空的情况,把s2的都放s1中 5 pushfront()和popfront(),必须是在s1为空,把s1的都给放到s2中 6 */ ...
分类:
其他好文 时间:
2014-09-22 02:10:31
阅读次数:
243
Data Handler
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2455 Accepted Submission(s): 616
Problem Description
You are in...
分类:
其他好文 时间:
2014-09-12 22:09:24
阅读次数:
373
一、集合类:1.1 ICollection接口 前面我们学习了数组,这是.net Framework定义的最基本的集合类型,除过数组外,.net Framework还另外定义了很多集合类型以满足编程的需要。常见的集合有:向量;链表;双端队列;栈;树;Hash表;Hash映射。 所有的这些集合类型.....
分类:
其他好文 时间:
2014-09-02 17:40:15
阅读次数:
235
一、源码解析LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。除此之外,LinkedList还提供了一些可以使其作为栈、队列、双端队列的方法。这...
分类:
编程语言 时间:
2014-09-01 10:30:32
阅读次数:
318
题目大意:按顺序给出一些点。可以构成一个多边形,问多边形是否有核。
解题思路:
半平面交。模版题。
用的是ZZY的O(Nlogn)的算法。
算法大体思路是这样的:
step1. 将所有半平面按极角排序,对于极角相同的,选择性的保留一个。 O(nlogn)
step2. 使用一个双端队列(deque),加入最开始2个半平面。
step3. 每次考虑一个新的半平面:
a.whi...
分类:
其他好文 时间:
2014-08-28 14:55:09
阅读次数:
264
双端队列deque是容器的一种,借助《STL源代码剖析》讲解双端队列的内存结构以及基本操作。...
分类:
其他好文 时间:
2014-08-14 01:36:27
阅读次数:
367