数据结构
jordandandan
这个作者很懒,什么都没留下…
展开
-
trie树建立
/*trie树动态建立*/#define MAX 26 //字符集大小typedef struct TrieNode{int nCount; //记录该字符出现次数struct TrieNode *next[MAX];}TrieNode;TrieNode Memory[1000000];int allocp =0;/*初始化*/void InitTrieRo原创 2013-07-25 20:40:04 · 651 阅读 · 0 评论 -
并查集
/*并查集 伪代码:*/#include#include#include#includeusing namespace std;int father[50002],a,b,m,n,p;int find(int x){if(father[x]!=x) father[x]=find(father[x]);return father[x];}int mai原创 2013-07-25 20:43:27 · 524 阅读 · 0 评论 -
poj 1442(堆---优先队列)
使用大顶堆和小顶堆。 其中,对于序列S[1..n],及表示迭代器位置的index,大顶堆维护排序后的S[1..index-1],小顶堆维护排序后的S[index..n],例如S[1..n] = 1,2,3,4,5,6,7,index = 4,则大顶堆为{1,2,3},小顶堆为{4,5,6,7}为什么要这样维护呢?因为当小堆最小的元素都大于大堆最大的元素时,那么序列中排第index原创 2013-08-15 17:37:23 · 709 阅读 · 0 评论 -
poj 2559(单调栈)
题意:给定从左到右多个矩形,已知这此矩形的宽度都为1,长度不完全相等。这些矩形相连排成一排,求在这些矩形包括的范围内能得到的面积最大的矩形,打印出该面积。所求矩形可以横跨多个矩形,但不能超出原有矩形所确定的范围。单调栈:由提议得知,我们采用单调栈,顾名思义就是在入栈时遵循单调原则,可以求出一个元素向左(或向右)所能扩展到的最大长度,并不是说在这一段区间内是单调的,而是保证在该区间内该元原创 2013-08-16 18:50:16 · 704 阅读 · 0 评论