树的直径
文章平均质量分 82
九野的博客
这个作者很懒,什么都没留下…
展开
-
HDU 4607 树的直径
#include #include #include #include #include using namespace std; #define N 100005 #define INF 1<<30 int n,dis[N],E; bool vis[N]; vectorG[N]; int BFS(int x) { int i; for(i=1;i<=n;i++)dis[i]=IN原创 2013-07-25 10:52:40 · 1440 阅读 · 0 评论 -
Codeforces 14D Two Paths 树的直径
题目链接:点击打开链接 题意:给定一棵树 找2条点不重复的路径,使得两路径的长度乘积最大 思路: 1、为了保证点不重复,在图中删去一条边,枚举这条删边 2、这样得到了2个树,在各自的树中找最长链,即树的直径,然后相乘即可 #include #include #include #include #include #include #include #include #include #i原创 2014-06-27 22:55:34 · 1418 阅读 · 0 评论 -
树的直径,树的重心,树的分治
点击打开链接转载 2014-07-24 11:50:02 · 1332 阅读 · 0 评论 -
Codeforces 455C Civilization 树的直径+并查集
题目链接:点击打开链接 题意: 给定n个点 m条无向边的图 k个询问 无重边、自环、环 定义 2个点属于一个国家:当这两个点连通时 操作1 x:输出x所在的国家内的最长路长度 操作2 x y:若x y属于一个国家 则忽略 若不属于一个国家,则在2个集合间连一条边,使得连完后最长路最短 连2个集合的最长路一定是 找2个集合最长路的中点进行连接 则连接后的最长路长度为 p原创 2014-08-09 12:31:12 · 1927 阅读 · 0 评论 -
HDU 4123 Bob’s Race 树的直径+单调队列
题意: 给定n个点的带边权树Q个询问。 下面n-1行给出树 下面Q行每行一个数字表示询问。 首先求出dp[N] :dp[i]表示i点距离树上最远点的距离 询问u, 表示求出 dp 数组中最长的连续序列使得序列中最大值-最小值 思路: 求dp数组就是求个树的直径然后dfs一下。 对于每个询问,可以用一个单调队列维护一下。O(n)的回答。 #include #includ原创 2014-11-09 14:18:19 · 1783 阅读 · 0 评论 -
UVALive 6534 Join two kingdoms 树的直径+期望
题目链接:点击打开链接原创 2014-10-30 16:18:47 · 1585 阅读 · 0 评论 -
UVA 11695 Flight Planning 修改一条边使得树的直径最短
题目链接:点击打开链接 题意: 给定n(n 删除一条边再加入一条边使得树的直径最短。 思路:首先枚举删除的那条边, 然后计算出删除后的2棵子树各自的重心 则新建的边一定是重心的连线。 而新的直径要么是在某个子树中,要么是两个子树间。 #include #include #include #include #include #include #include #incl原创 2015-01-29 20:40:34 · 2266 阅读 · 0 评论 -
Aizu 1263 Network Mess 树的直径+构造
题目链接:点击打开链接 Network Mess Gilbert is the network admin of Ginkgo company. His boss is mad about the messy network cables on the floor. He finally walked up to Gilbert and asked the lazy netwo原创 2015-03-31 14:32:09 · 1505 阅读 · 0 评论