题意是给定一棵树。同时,给定如下k个查询:给出任意两点u,v,对u到v的路径所经过的边进行加计数。k个查询后,分别输出各边的计数之和。思路利用LCA,对cnt[u]++, cnt[v]++,并对cnt[LCA(u, v)] -= 2.然后dfs求解各边的计数。 1 /* 191C */ 2 #i.....
分类:
其他好文 时间:
2015-09-23 23:16:11
阅读次数:
236
POJ 1330 Nearest Common Ancestors题意:最近公共祖先的裸题思路:LCA和ST我们已经很熟悉了,但是这里的f[i][j]却有相似却又不同的含义。f[i][j]表示i节点的第2j个父亲是多少 这个代码不是我的,转自 邝斌博客 1 /* **************...
分类:
编程语言 时间:
2015-09-22 23:36:42
阅读次数:
267
题意:有 n 点的一颗树,每个节点有格子的权值,现在有两种操作,修改一个点的权值,或者求两点之间的路径上的第 k 大的权值。其实看到这个题,就在 YY 各种做法,询问后得到貌似可能是关于主席树、树链剖分等高端数据结构做的,但事实上,大概是出题人也并不想出难题,只是为了练练手所以……直接把每个问题路径...
分类:
其他好文 时间:
2015-09-22 23:13:51
阅读次数:
129
生成树的上的一个非根结点对应一条生成树上的边,然后这个结点的子树上连出去的边就对应去掉这条边的割,然后就可以对树外的边求LCA,在LCA上标记,利用这个信息可以算出有多少条边在子树上,以及有多少条边不再子树上。其实更进一步,非叶子结点一定不会比叶子结点更优,连的边只不会减少。所以只要统一叶子结点上的...
分类:
其他好文 时间:
2015-09-22 22:01:02
阅读次数:
174
题意:现在有 n 个点与 m 条边的无向无环图,但是图不一定完全连通,边有各自的边权,给出多组询问,查询两点之间的路径权值和,或者输出两点不连通。一开始有最短路的想法,但是由于询问有 1e6 组,做单源最短路肯定会爆炸,而 1e4 的边数又觉得 floyd 时间空间都会炸,又因为是无环图,所以就想到...
分类:
其他好文 时间:
2015-09-22 18:45:24
阅读次数:
203
题目链接: Hdu 5452 Minimum Cut题目描述: 有一棵生成树,有n个点,给出m-n+1条边,截断一条生成树上的边后,再截断至少多少条边才能使图不连通, 问截断总边数?解题思路: 因为只能在生成树上截断一条边(u, v),所以只需要统计以v为根节点的子生成树里的节点与子生成树外的...
分类:
其他好文 时间:
2015-09-22 12:57:53
阅读次数:
324
---------9.21cf 519 ehttp://codeforces.com/problemset/problem/519/E补了之前说的要滚去学的lca有4种情况1. u 是lca,v是lca,这种不合法2. u 是lca,v不是lca,这种要找他们的中点是不是存在3.u 不是lca,v是...
分类:
其他好文 时间:
2015-09-22 01:19:22
阅读次数:
262
题意:求LCA……这棵树是单向边,入度为0的为根,只有一组查询。解法:st求LCA(只会这个)。dp[i][j]表示第i个点的第2j个祖先是谁,转移方程dp[i][j] = dp[dp[i][j - 1]][j - 1]。先dfs一边记录dp[i][0],和点的深度,求LCA的时候先把深度大的点升到...
分类:
其他好文 时间:
2015-09-21 21:16:25
阅读次数:
166
题目:给出一个图和它的一个生成树,要求删除生成树上的一条边和若干其他边,使得图不连通。求能删除的最小边数。思路:考虑dp,对于树上的一条边,删除之后,还需要删除的边的数目就是从这个节点的子树连向其他子树或祖先节点的边数。那么对于一棵子树来说这个统计数目就等于其子树的数目之和减去它的子树之间的边数。减...
分类:
其他好文 时间:
2015-09-21 19:38:24
阅读次数:
161
最近公共祖先问题(LCA)是求一颗树上的某两点距离他们最近的公共祖先节点,由于树的特性,树上两点之间路径是唯一的,所以对于很多处理关于树的路径问题的时候为了得知树两点的间的路径,LCA是几乎最有效的解法。首先是LCA的倍增算法。算法主体是依靠首先对整个树的预处理DFS,用来预处理出每个点的直接父节点...
分类:
其他好文 时间:
2015-09-21 19:37:31
阅读次数:
156