
树链剖分
五彩蒟蒻DDD
大大大大大蒟蒻
展开
-
bzoj3694&bzoj1576 dijkstra+树链剖分
bzoj1576其实就是bzoj3694的进阶版啦。 具体思路如下: 一条未加入最短路树的边两端点分别为u,v。u,v的lca为t。 设u–lca–v这条链上的点为x。 DIS[x]包括边(u,v)的最短长度为: DIS[x]=dis[u]+l(u,v)+dis[v]-dis[x] (画图易得) 需要注意的是x不包括lca,若包括则DIS[lca]与根节点不连通。 所以枚举未加入最原创 2017-09-29 17:56:57 · 382 阅读 · 0 评论 -
9.26NOIP模拟 树链剖分
这道题调了那么久居然是最后的judge错了…… 没有考虑m=0和m=1的情况 以#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=100000+5; int n,m; int a[N]; int to[2*N],nxt[2*N],head[N],etot; int dep原创 2017-09-29 18:07:15 · 307 阅读 · 0 评论 -
bzoj2243 树链剖分
Description神犇家门口种了一棵苹果树。苹果树作为一棵树,当然是呈树状结构,每根树枝连接两个苹果,每个苹果都可以沿着一条由树枝构成的路径连到树根,而且这样的路径只存在一条。由于这棵苹果树是神犇种的,所以苹果都发生了变异,变成了各种各样的颜色。我们用一个到n之间的正整数来表示一种颜色。树上一共有n个苹果。每个苹果都被编了号码,号码为一个1到n之间的正整数。我们用0代表树根。只会有一个苹果直接根原创 2017-09-28 17:49:57 · 384 阅读 · 0 评论