树链剖分
文章平均质量分 80
BanFcc
这个作者很懒,什么都没留下…
展开
-
SPOJ Query on a tree
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1.We will ask you to perfrom some instructions of the following form:CHANGE i ti :原创 2017-03-13 17:16:30 · 293 阅读 · 0 评论 -
POJ - 2763 Housewife Wind
After their royal wedding, Jiajia and Wind hid away in XX Village, to enjoy their ordinary happy life. People in XX Village lived in beautiful huts. There are some pairs of huts connected by bidirecti原创 2017-03-13 17:18:51 · 470 阅读 · 0 评论 -
HYSBZ - 1036 树的统计Count
一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身Input 输入的第一原创 2017-03-13 17:20:44 · 371 阅读 · 0 评论 -
FZU - 2082
有n座城市,由n-1条路相连通,使得任意两座城市之间可达。每条路有过路费,要交过路费才能通过。每条路的过路费经常会更新,现问你,当前情况下,从城市a到城市b最少要花多少过路费。Input有多组样例,每组样例第一行输入两个正整数n,m(2 Output对于每个询问,输出一行,表示最少要花的过路费。Sample Input2 31 2 11 1 20 1 2原创 2017-03-13 17:22:32 · 420 阅读 · 0 评论 -
HYSBZ - 2243 染色
给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“ 112221 ” 由3段组成:“ 11 ” 、“ 222 ” 和“ 1 ” 。请你写一个程序依次完成这m个操作。Input第一行包含2个整数n和m,分别表示节点数和操作数;第二行包含n个正整数表示n个节原创 2017-03-13 17:24:03 · 584 阅读 · 0 评论 -
POJ - 3237 Tree
You are given a tree with N nodes. The tree’s nodes are numbered 1 through N and its edges are numbered 1 through N − 1. Each edge is associated with a weight. Then you are to execute a series of inst原创 2017-03-13 17:25:23 · 351 阅读 · 0 评论 -
SPOJ - QTREE6 Query on a tree VI(树链剖分+DP)
#includeusing namespace std;const int MAXN=(int)1e5+10;struct edge{ int to,nxt;}ed[MAXN<<1];int dp[MAXN][2],sum[MAXN],head[MAXN],cnt;int n,m;void addedge(int u,int v){ ed[cnt].to=v; ed[cnt].原创 2017-07-15 14:17:34 · 409 阅读 · 0 评论 -
树链剖分总结
感觉树链剖分其实和DFS序差不多,都是对数进行一定的HASH,使得对树的操作可以在一段连续区间上操作。不同的是DFS序是针对一棵子树的操作,而树链剖分针对(U,V)上的路径。(感觉难点都是在区间操作上。。。。看来是我的线段树学太差了)树链剖分的代码:struct node{ int to,nxt; }ed[maxn<<1]; int head[maxn],cnt;原创 2017-03-15 21:48:55 · 357 阅读 · 0 评论