数据结构
文章平均质量分 80
work_freedom
这个作者很懒,什么都没留下…
展开
-
poj 2761 splay tree
这道题 可以用很多方法做像划分树之类滴~~~ 用splay虽然比划分树慢了一点,不过也只是慢了一点呀,想想有通用的解法,何必用不太常用的划分树喃~~ #include #include #include #include #define fr(i,s,n) for(int i=s;i<n;++i) #define _fr(i,n,s) for(int i=n-1;i>=s;原创 2012-10-28 22:47:23 · 486 阅读 · 0 评论 -
poj 3580 splay tree
splay tree 的孩子父亲关系 既可以是 大小的偏序关系 ,也可以是位置的偏序关系~~~ 这道题用的是位置的偏序关系~~~ #include #include #include #include #include #define fr(i,s,n) for(int i=s;i<n;++i) #define _fr(i,n,s) for(int i=n-1;i>原创 2012-10-28 22:28:19 · 340 阅读 · 0 评论 -
ZOJ 2859 Matrix Searching 二维rmq
二维的rmq 和一维的rmq 其实非常相似,我们定义 dp[r][c][i][j] 为 覆盖了 r行c列 到 r+2^i-1行 c+2^j-1列的 标记值(如最大最小)。 dp转移就很容易了: 当i为0 ,j为0 的时候就是 数组[r][c]的值, 当i= 0 ,就j不为0的时候,就和一维的rmq一样,此时即对第一行求rmq; 我们只看二维rmq的行,那么二维rmq 也变成了一维原创 2012-11-27 00:25:57 · 425 阅读 · 0 评论 -
spoj 1557 Can you answer these queries II (gss2)线段树
从来木有想过update儿子呀,除了lazy~~ #define fi freopen("in.txt","r",stdin) #include #include #include #include #include #include using namespace std; #define sfint(x) scanf("%d",&x) #define sf原创 2012-12-09 18:11:15 · 729 阅读 · 0 评论 -
spoj6779 Can you answer these queries VII(gss7)动态树
看了一下题,二话没说,想拍一个树链剖分,像线段树维护一下4个值就行了,可是想想树链剖分那长长的代码,额~(⊙o⊙)… 突然想到一句话,一切尽动态树。 先把建立一颗树吧 ,这里用1作为根, 这样的话这棵树就已经定型了。 刚开始每个节点只记录双亲。 这样任意两个节点 向着根所走过的路 要吗在路中间有交点,要么在根上有交点,要么就直接交与这两个点的某一个点了。利用这个性质我们可以yy很多东原创 2012-12-09 18:05:00 · 928 阅读 · 0 评论 -
动态树模板 (陈首元ppt)
根据陈首元的ppt,写的动态树模板,功能灰常全~~~ #include #include #define NMax 10000 using namespace std; struct node{ int key,mn,delta; int revmark; node *p,*l,*r; node(){} }; struct DynamicTree{ node *nodes;原创 2012-12-10 13:36:14 · 1931 阅读 · 0 评论 -
stl list
STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。 文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list::iterator citer用来指向c1或c2元素。 list对象的声明构造(): A. listc0; //空链表 B. l转载 2012-12-13 15:17:05 · 331 阅读 · 0 评论