题意:一个树,a b c 代表a--b边的权值为c。CHANGE x y 把输入的第x条边的权值改为y,QUERY x y 查询x--y路径上边的权值的最大值。第一次写树链剖分,其实树链剖分只能说是一种思想。树链剖分 就是 先选择从根节点到叶子节点的最长的路径的权值对应到线段树上,然后从一个子树的根...
分类:
其他好文 时间:
2014-10-08 01:26:54
阅读次数:
283
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966题目大意:营地的分布成树型。每个营地都有一些人,每次修改修改一条链上的所有营地的人数,每次查询单个点。解题思路:树链剖分基础题。维护一个sum。注意轻链修改时,点修改和边修改的不同。由于树的结构与线...
分类:
其他好文 时间:
2014-10-07 22:29:24
阅读次数:
247
题意: 树上路径之间的点统一加减k,查询某点的值解法:不会LCA的解法,于是用树链剖分了,比较简单的剖分,然后用线段树维护就行了,相当于区间更新,单点查询,查询点 i 的值时,只需在线段树中查询pos[u]位置的值即可。加IO优化900+ms代码:#include #include #include...
分类:
其他好文 时间:
2014-10-07 17:16:13
阅读次数:
221
题目链接:http://poj.org/problem?id=2763题目大意:某人初始在s点。有q次移动,每次移动沿着树上一条链,每经过一条边有一定花费,这个花费可以任意修改。问每次移动的花费。解题思路:树链剖分基础题。每次Q之后改变一下s。线段树记录的是边权。方法是对于一条边(u,v),边权值加...
分类:
其他好文 时间:
2014-10-07 14:42:03
阅读次数:
204
擦,没啥好说的,这个模板至少得打10遍。。纪念自己成功的打错了。。
#include
#include
#include
#include
using namespace std;
#define LL int
#define lson id << 1
#define rson id << 1|1
const LL M = 100008;
LL ti[M],top[M],siz[M],...
分类:
其他好文 时间:
2014-10-07 10:40:53
阅读次数:
260
hdu5044 Tree 树链剖分,点剖分,边剖分,非递归版
//#pragma warning (disable: 4786)
//#pragma comment (linker, "/STACK:16777216")
//#pragma comment(linker, "/STACK:60400000,60400000")
//HEAD
#include
#include
#i...
分类:
其他好文 时间:
2014-10-06 21:36:10
阅读次数:
663
树链剖分基础题
#include
#include
#include
using namespace std;
const int maxn = 10010;
struct edge
{
int v, next;
}e[maxn*2];
int first[maxn], cnt;
int top[maxn], dep[maxn], sz[maxn], f[maxn], son[maxn...
分类:
其他好文 时间:
2014-10-06 02:55:39
阅读次数:
179
Relief grain
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Others)
Total Submission(s): 861 Accepted Submission(s): 219
Problem Description
The soil is crac...
分类:
其他好文 时间:
2014-10-05 14:51:38
阅读次数:
145
树链剖分裸题。。。。
又要扩栈又要输入挂还卡格式。。。。真无语
Tree
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1538 Accepted Submission(s): 261
Proble...
分类:
其他好文 时间:
2014-10-03 13:15:14
阅读次数:
171
HDU 5044 Tree
题目链接
就简单的树链剖分,不过坑要加输入外挂,还要手动扩栈
代码:
#include
#include
#include
#include
using namespace std;
const int N = 100005;
#pragma comment(linker, "/STACK:1024000000,1024000000"...
分类:
其他好文 时间:
2014-10-02 23:05:43
阅读次数:
232