裸的树链剖分~但是我用欧拉序+lca+线段树代替了他~...
分类:
其他好文 时间:
2015-04-20 09:25:59
阅读次数:
194
题目链接:hdu--3966
给出n个点的值,还有n-1条边的连接方式,三种操作:
1、I在节点a到b的路径中所有的点都增加x
2、D在节点a到b的路径中所有的点都减少x
3、Q询问第k个节点的值。
将每个节点的值转化为父节点到子节点的边的权值,对于根节点做一个虚拟的父节点0 。进行树链剖分,整合到线段树中之后注意:
更新时,不能只更新a到b上的边的权值,因为那样会使b节点的权值不能被...
分类:
其他好文 时间:
2015-04-19 18:02:11
阅读次数:
136
题目链接:poj--3237
题意很简单,给出n个节点的一棵树,有三种操作:
1、C修改第i条边的值为v
2、N改变节点a到b内边的权值的符号(取反)
3、Q询问节点a到b内权值的最大值
首先树链剖分,将边整合到线段树上,线段树数组cl,因为存在取反操作,所以最大值可能是由最小值取反得到,所以记录最大和最小值,cl[i][0]记录第i段的最大值,cl[i][1]记录最小值,lazy做标记...
分类:
其他好文 时间:
2015-04-19 16:17:18
阅读次数:
141
Housewife Wind
Time Limit: 4000MS
Memory Limit: 65536K
Total Submissions: 6898
Accepted: 1742
Description
After their royal wedding, Jiajia and Wind hid away in XX Vill...
题目链接:BZOJ - 1036题目分析这道题可以用树链剖分,块状树等多种方法解决,也可以使用 LCT。修改某个点的值时,先将它 Splay 到它所在的 Splay 的根,然后修改它的值,再将它 Update 一下。询问 x, y 两点之间的路径时,假设 x 是深度小的那一个,先 Access(x)...
分类:
其他好文 时间:
2015-04-16 21:16:51
阅读次数:
227
先来LCA的: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define REP(i, s, n) for(int i = s; i = s; i --) 8 using namespace std; 9 const ...
分类:
其他好文 时间:
2015-04-15 22:55:26
阅读次数:
193
题意:给你一棵树,每个节点有一个值,3种操作1)Q u询问 某一个点的值。2)I u v w 把u,v之间(包括u,v)所有的点的值都加上 w3) D u v w 把u,v之间(包括u,v)所有的点的值都减去 w解题思路:树链剖分,树状数组记录改变值要比线段树快一点。解题代码: 1 // Fil.....
分类:
其他好文 时间:
2015-04-14 16:22:06
阅读次数:
138
Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园。 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里。爬啊爬~爬啊爬~~毛毛虫爬到了一颗小小的“毛景树”下面,发现树上长着他最爱吃的毛毛果~~~ “毛景树”上有N个节点和N-1条树枝,但节点上是没有毛毛....
分类:
其他好文 时间:
2015-04-11 16:09:06
阅读次数:
192
关于边剖 之前做的大多是点剖,其实转换到边剖非常简单。 我的做法是每个点的点权记录其到父亲节点的边的边权。 只要solve的时候不要把最上面的点记录在内就可以了。TreeDescription You are given a tree withNnodes. The tree’s nodes...
分类:
其他好文 时间:
2015-04-11 11:44:13
阅读次数:
182