数据结构-笛卡尔树
文章平均质量分 59
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 [email protected]
展开
-
hdu 4605 Magic Ball Game(可持久化笛卡尔树)
题目链接:hdu 4605 Magic Ball Game题目大意给定一棵二叉树,保证节点没有孩子节点或者有两个孩子节点,并且每个节点有一个权值W[i],1为根节点,树给定的方式m个关系u a b,表示u节点的左孩子为a,右孩子为b。现在从根节点放一个权值为X的小球: - X = W[u]时:小球停留在该节点 - X > W[u]时:小球有1/8的概率移动到左孩子,7/8的概率移动到右孩子 -原创 2015-10-26 20:59:04 · 669 阅读 · 0 评论 -
hdu 5324 Boring Class(树状数组+笛卡尔树 | 树状数组+cdq分治)
题目链接:hdu 5324 Boring Class 做法一:树状数组套笛卡尔树。 保证字典序最小,从N->1方向遍历。树状数组维护第二维,每个节点对应一棵笛卡尔树,笛卡尔树的key值对应第三维,val值为随机值,控制树高。然后笛卡尔树的每个节点维护len,idx,mlen,midx将每次查询复杂度控制在log(n) * log(n) #include #include #inc原创 2015-08-05 14:49:03 · 1017 阅读 · 0 评论 -
hdu 5412 CRB and Queries(线段树套笛卡尔树 - 动态区间第k大)
题目链接:hdu 5412 CRB and Queries 首先对所有出现过的值排序,建立线段树,每个线段树的节点是一棵笛卡尔树,笛卡尔树记录区间下标值。 #include #include #include #include using namespace std; #define lson(x) (x<<1) #define rson(x) ((x<<1)|1)原创 2015-08-21 22:32:54 · 1214 阅读 · 0 评论 -
uva 1479 - Graph and Queries(伸展树)
题目链接:uva 1479 - Graph and Queries 题目大意:有一张m条边的无向图,每个节点都有一个权值,现在有若干个操作, D x:删除ID为x的节点Q x k:计算与节点x联通的节点当中,第k大的权值C x v:把节点x的权值改为v 解题思路:把所有操作反过来处理,先执行所有的D操作,获得最终的图,然后逆操作的时候对于D来说即为合并操作,Q和C则是查询和修改操原创 2014-09-16 09:42:25 · 1229 阅读 · 0 评论