主席树
Ren_Ivan
衡中oier,fight for furture
展开
-
bzoj 2588 树上主席树
主席树上树,对于每个节点,继承其父亲的,最后跑f[x]+f[y]-f[lca]-f[fa[lca]] 去重竟然要减一,我竟然不知道?? #include #include #include #include #include #define N 100005 using namespace std; int e=1,head[N]; struct edge{ int u,v,next;原创 2017-08-03 10:08:13 · 368 阅读 · 2 评论 -
bzoj 3551 kruskal重构树dfs序上的主席树
强制在线 kruskal重构树,每两点间的最大边权即为其lca的点权。 倍增找,dfs序对应区间搞主席树 #include #include #include #include #include #define N 100005 #define M 500005 using namespace std; int l[2*N],r[2*N],cnt,num_cnt,val[2*N],num原创 2017-08-05 08:36:12 · 287 阅读 · 0 评论 -
bzoj 2653 middle 二分答案 主席树判定
判断中位数是否可行需要将当前的解作为分界,大于其的置为1,小于为-1,然后b-c必选,ab,cd可不选,这个用线段树判定就好 但不能每次跑,所以套主席树,按权值排序,构建主席树,更新时将上一个节点改为-1,能保证以上结论 #include #include #include #include #include #define N 20005 using namespace std; int l原创 2017-08-05 11:46:20 · 287 阅读 · 0 评论 -
bzoj 1901 主席树+树状数组
修改+查询第k小值 单纯主席树修改会打乱所有,所以再套一个树状数组维护前缀和使得修改,查询都是log 对了,bzoj上不需要读入组数,蜜汁re。。 #include #include #include #include #include using namespace std; int n,m,sz,T,num_tot,num_cnt,num_l,num_r; int sum[8000005原创 2017-08-03 09:51:23 · 267 阅读 · 0 评论