树链剖分
r_clover
这个作者很懒,什么都没留下…
展开
-
树链剖分模板题汇总
记录几个树链剖分的模板题,包括点操作,边操作和带方向的操作。点操作HDU 3966#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <vector>#include <queue>#include <stack>#include <set原创 2016-03-02 19:22:20 · 1651 阅读 · 0 评论 -
HDU 5293(树链剖分)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106364#problem/A) 题意:给定一棵树,一些链,选出最多的链不相交。 解法:定义 sum[u] = sim(dp[v]) ( v = son[u] ) dp[u]为u这颗子树,最多能选的链数。 当有一条链a,b,lca(a,b)=u原创 2016-03-02 19:40:44 · 262 阅读 · 0 评论 -
HDU 5458(树链剖分)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106364#problem/B) 题意:给一个无向图,两种操作,删除一条边,询问两点之间关键路径的数目。 关键路径,即删除这条边,两点就不联通了。保证图一直联通。 解法:先在最后的图上跑一颗生成树。每有一条其他的边,就对路径上的所有边+1。所以就存在两种操作,对某一段-1,查原创 2016-03-02 19:50:17 · 261 阅读 · 0 评论 -
HDU 4718(树链剖分)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106364#problem/C) 题意:一棵树,点权值,Q询问,询问a到b的路径上最长的一段上升序列。 解法:树链剖分点操作,是带方向的,并且必须是a到b,不能是b到a。//#pragma comment(linker, "/STACK:1024000000,1024000000")原创 2016-03-02 19:57:45 · 703 阅读 · 0 评论 -
HDU 5405(树链剖分)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106364#problem/D) 题意:一棵树,点权值,两种操作,1.修改u的权值成w,2.查询u,v,求w[i]*w[j],i,j满足i,j的路径与u,v相交。 解法:先求不相交的。 对于每个节点u , 记录两个值 1. sum[u] u子树w之和。原创 2016-03-02 20:12:54 · 492 阅读 · 0 评论