我的第一道LCT题(居然1A,O(∩_∩)O哈哈~)题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2002大概题意:给一颗有根树,维护每个节点的深度(到根节点的边数),支持断开子树并把它连接到任意节点。题解:Link Cut Tree 1 /....
分类:
其他好文 时间:
2015-02-09 23:01:06
阅读次数:
343
题意:
多组数据、
给你一颗树,
然后求一条最长异或路径,
异或路径长度定义为两点间简单路径上所有边权的异或和。
题解:
首先无根树转有根树再在树上跑一遍算出每个点到根的异或和。
然后两点间异或路径长度就是a[i]*a[j]。
因为lca之前那一段都被异或了两次搞没了。
然后求个线性基,然后随便搞搞就可以?可以WA了!
因为那么算哪是简单路径啊,或者说,那特喵的...
分类:
其他好文 时间:
2015-02-04 16:40:01
阅读次数:
228
题目大意:维护一棵有根树,每个节点初始权值为0,支持下列操作:
1.链上+
2.子树求和
。。。。。链剖裸题- -
果然链剖这种东西想要1A实在是不咋现实- -
#include
#include
#include
#include
#define M 100100
using namespace std;
struct Segtree{
Segtree *ls,*rs;
l...
分类:
其他好文 时间:
2015-02-04 14:49:21
阅读次数:
143
#include #include #include #include #include #define N 100000+2using namespace std;//无根树转有根树算法/* 算法分析:所谓无根树,就是根节点任意的树。我们可以给它确定一个根节点。 我们可以假定认为某一个节点为根.....
分类:
编程语言 时间:
2015-02-03 20:58:09
阅读次数:
185
题目大意:给定一棵有根树,求以每个点为根的子树中有多少点到它的距离不超过l
第一眼是可并堆- - 于是怒写- - 管它正解是啥- -
从下到上维护可并大根堆 键值是该点到当前根节点的距离 一旦堆顶剪枝大于l就弹顶
时间复杂度O(nlogn)
什么?你说将整个堆都加上一个值?
打标记不就好了- - 毫无疑问可并堆是可以打标记的- -
此外我的随机堆写if(flag^=1)就T写if(ra...
分类:
其他好文 时间:
2015-02-02 23:16:51
阅读次数:
235
题目链接:点击打开链接
题意:
给定n个点的有根树(0为根),
下面给出边和边权
一个整数q表示q个询问
每个询问一个数字x ,表示有一个人从根开始走,行走距离不超过x且使得走过不相同的点最多。
问最多能走多少个点。
思路:
dp[i][j][0]表示以i为根的子树,以i为起点走了j个不同点且回到i的最小花费。
dp[i][j][1]表示不需要回到i的最小花费。
转移的时候就是...
分类:
其他好文 时间:
2015-02-02 19:56:18
阅读次数:
239
题目大意:给定一棵以1为根的有根树,每条边有边权,每个点有三个值pi,qi,li
从一个点可以走到它的某个祖先处,前提是距离d不超过li,花销为pi*d+qi
求从每个点到达根节点的最小花销
这道题的上一份题解:http://blog.csdn.net/popoqqq/article/details/39009219
很不幸我作死去重写了一发233
之前的写法真是SB的1B。。。 为何要...
分类:
其他好文 时间:
2015-01-12 14:48:46
阅读次数:
395
题目大意:给出一棵有根树,n组询问,每一组询问给出树上的一些关键点,问割掉一些边使得根与这些点不联通的最小花费是多少。总询问的点不超过O(n)。
思路:基础思路是每一次询问做一次O(n)的DP,这本来已经够快了,但是有很多询问,这样做就n^2了。注意到所有询问的点加起来不超过O(n),也就是说每次询问的点可能很少。那么我们为何要将所有点扫一次?只需要将询问的点重新建树,然后跑树形DP,这...
分类:
其他好文 时间:
2015-01-08 09:40:04
阅读次数:
480
题意:有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数。分析:这种题目就属于那种,看起来很高冷,读完题更高冷。想了N久想不出来,一搜题解,卧槽,这么sb的题我都不会。言归正传,根据题意,这棵树是关于根节点对称的,对称性非常好,根节点下面的子树也完全相同。所以就有...
分类:
其他好文 时间:
2015-01-07 23:24:27
阅读次数:
262
一、概念与图论中的“度”不同,树的度是如下定义的:有根树T中,结点x的子女数目称为x的度。也就是:在树中,结点有几个分叉,度就是几。一个有用的小公式:树中结点数 = 总分叉数 +1。(这里的分叉数就是所有结点的度之和)二、度的计算1.设树T的度为4,其中度为1,2,3,4的节点个数分别为4,2,1,...
分类:
其他好文 时间:
2015-01-07 00:33:09
阅读次数:
376