题目链接:Codeforces 191C Fools and Roads
题目大意:给定一个N节点的数,然后有M次操作,每次从u移动到v,问说每条边被移动过的次数。
解题思路:树链剖分维护边,用一个数组标记即可,不需要用线段树。
#include
#include
#include
using namespace std;
const int maxn = 1e5 + 5;
...
分类:
其他好文 时间:
2014-10-17 20:34:04
阅读次数:
128
题目链接:poj 2763 Housewife Wind
题目大意:给定一棵树,然后2种操作:
0 u:输出路径s到u的权值和,并且s变成u1 i w:节点i增加w
解题思路:树链剖分,然后用线段树维护,单点修改区间查询。
#include
#include
#include
using namespace std;
const int maxn = 100005;
...
题目链接:hdu 3966 Aragorn's Story
题目大意:给定一个棵树,然后三种操作
Q x:查询节点x的值I x y w:节点x到y这条路径上所有节点的值增加wD x y w:节点x到y这条路径上所有节点的值减少w
解题思路:树链剖分,用树状数组维护每个节点的值。
#pragma comment(linker, "/STACK:1024000000,1024000...
分类:
编程语言 时间:
2014-10-17 10:19:10
阅读次数:
225
题目链接:poj 3237 Tree
题目大意:给定一棵树,三种操作:
CHANGE i v:将i节点权值变为vNEGATE a b:将ab路径上所有节点的权值变为相反数QUERY a b:查询ab路径上节点权值的最大值。
解题思路:树链剖分,然后用线段树维护节点权值,成端更新查询。
#include
#include
#include
using namespace ...
分类:
其他好文 时间:
2014-10-17 10:18:39
阅读次数:
190
题目链接:hysbz 2243 染色
题目大意:略。
解题思路:树链剖分+线段树的区间合并,但是区间合并比较简单,节点只要记录左右端点的颜色即可。
#include
#include
#include
using namespace std;
const int maxn = 1e5 + 5;
int N, M, ne, val[maxn], first[maxn], j...
分类:
其他好文 时间:
2014-10-17 10:16:07
阅读次数:
254