
树链剖分
HbFS-
di4CoveRy
展开
-
[UVALive]7338 树链剖分+线段树
诶秒出正解的题目写起来就是爽 有一个结论:在生成树上添加一条新边E{a,b,v}使得新图的最小生成树改变,充要条件是E和生成树形成的环中,v不是权值最大的边。 对最小生成树进行树链剖分,按树链剖分序建线段树 对于第n~m条边E{a,b,v},将a,b路径上的最短边求出来e{a0,b0,v0},v-v0即为该边能减小最多的值,增加最多的值为INF 对于前1~n-1条边E{a,b,v}原创 2016-12-07 19:04:01 · 577 阅读 · 0 评论 -
[BZOJ4568][Scoi2016]幸运数字 树链剖分+线性基
学习了一下线性基这个东西 log时间支持加法 树链剖分维护一下 再利用线性基查询最大值即可 线性基博文推荐:http://www.cnblogs.com/ljh2000-jump/p/5869991.html/************************************************************** Problem: 4568 User: d原创 2017-02-12 13:18:30 · 425 阅读 · 0 评论 -
[Codeforces343D] Water Tree 树链剖分
既然讲了这题,就写一写吧 直接剖,没啥好想的#include <iostream> #include <cstdio> #include <vector>#define mid ( (l + r) >> 1 ) #define ls l,mid,t<<1 #define rs mid+1,r,t<<1^1#define N 500050using namespace std; int son[N]原创 2017-01-23 18:16:53 · 409 阅读 · 0 评论 -
[BZOJ3626][LNOI2014]LCA 树链剖分
太神啦! http://blog.youkuaiyun.com/popoqqq/article/details/38823457/************************************************************** Problem: 3626 User: di4CoveRy Language: C++ Result: Accepted原创 2017-02-03 16:53:38 · 437 阅读 · 0 评论