ACM-数据结构-树链剖分
暗金色
这个作者很懒,什么都没留下…
展开
-
HYSBZ - 1036 树的统计Count(树剖)
题目大意:中文题解题思路:树剖裸题#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 30010;const int M = 30010 << 2;const int INF = 0x3f3f3f3f;struct Edge{ int u, v, next原创 2015-10-13 23:33:13 · 442 阅读 · 0 评论 -
HDU - 3966 Aragorn's Story(树剖模版题)
题目大意:给出N个点,有三种操作 1. I a b,第a个营地增加b个人 2. D a b,第a个营地减少b个人 3. Q a,第a个营地有多少人解题思路:树剖模版题#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;const int N = 5000原创 2015-10-13 23:28:25 · 364 阅读 · 0 评论 -
FZU - 2082 过路费(树剖)
题目大意:中文题解题思路:树剖裸题#include <cstdio>#include <cstring>#include <vector>using namespace std;typedef long long LL;const int N = 50005;struct Edge { int u, v; LL dis; Edge() {} Edge(int原创 2015-10-13 23:34:48 · 443 阅读 · 0 评论 -
SPOJ - QTREE Query on a tree(树剖)
题目大意:给出一棵树,有两种操作 CHANGE i t:将第i条边的权值变成t QUERY a b:询问a到b的路径上权值最大的边解题思路:树剖裸题#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 10010;const int M = 10010 << 2;原创 2015-10-13 23:39:53 · 509 阅读 · 0 评论 -
POJ - 2763 Housewife Wind(树剖)
题目大意:给你N个点,其中一个点是你当前所在的位置,现在提供两种操作 0 u:从当前点到u点的距离 1 u w:将第u条边的权值改成w解题思路:树剖裸题,不过这题坑,卡了vector#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 100010;struct E原创 2015-10-13 23:31:54 · 369 阅读 · 0 评论 -
LightOJ - 1348 Aladdin and the Return Journey(树剖)
题目大意:给出一棵树和两种操作 0 i j:从i点到j点的权值和 1 i v: 第i点的权值变成v解题思路:树剖裸题#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 30010;const int M = 30010 << 2;struct Edge{原创 2015-10-13 23:37:20 · 490 阅读 · 0 评论 -
HYSBZ - 2243 染色(树剖 + 区间合并)
题目大意:给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。解题思路:维护三个值,sum表示该区间的颜色段数量,left表示该区间的最左边的颜色,right表示该区间最右边的颜色原创 2015-10-15 23:25:22 · 662 阅读 · 0 评论 -
POJ - 3237 Tree(树剖 + 区间修改)
题目大意:给你一棵树,然后给你三种操作 C i v:将第i条边的权值变成v N a b:将a到b的所有的边的权值取相反数 Q a b:将a到b的边的最大值输出来解题思路:用线段树维护两个值,一个是最大值,一个是最小值 当区间取反的时候,交换最大值跟最小值,然后两个取相反数就可以了 还有一点要注意的,区间修改的lazy标志,并不是传递下去的,而是分奇偶的,因为区间被取相反数偶数次的话,就相原创 2015-10-15 23:21:06 · 448 阅读 · 0 评论