2014年1月15日

摘要: 树上直径小结ByWine93 2013.101.求树的直径算法:任选一点u为起点,对树进行DFS(BFS)遍历,找出离u最远的点v以v为起点,再进行DFS(BFS)遍历,找出离v最远的点w。则v到w的路径长度即为树的直径原理:设起点为u,第一次DFS(BFS)找到的终点v一定是树的直径的一个端点证明:可参考wuyiqi巨巨的证明 http://www.cnblogs.com/wuyiqi/archive/2012/04/08/2437424.html 2.树的直径应用举例一.模板题--POJ1985CowMarathon--POJ2631RoadsintheNorths二.求一条路径,使该路径 阅读全文
posted @ 2014-01-15 17:02 Wine93 阅读(1015) 评论(0) 推荐(0)
 
摘要: 树上背包问题小结by Wine93 2014.1.152.训练题目1.POJ 1155TELE(树形DP+分组背包)http://poj.org/problem?id=1155题意:给定一棵边权全为负,叶子结点为正权的有根树! 问从根结点出发使得权值和不为负最多能到达的叶子结点个数。思路:树形DP+分组背包! dp[u][j]:以u为跟结点,选j个叶子结点最大价值 dp[u][j]=max(dp[u][j],dp[u][j-k]+dp[v][k]-e[i].w); (v为u的子结点)# include# include# include# include# include# inclu... 阅读全文
posted @ 2014-01-15 09:19 Wine93 阅读(803) 评论(0) 推荐(0)
 
摘要: RMQ问题小结 by Wine93 2014.1.141.算法简介RMQ问题可分成以下2种(1)静态RMQ:ST算法一旦给定序列确定后就不在更新,只查询区间最大(小)值!这类问题可以用倍增的ST算法进行预处理预处理:O(nlogn)查询:O(1)(2)动态RMQ:线段树要更新一些值,还有询问更新:... 阅读全文
posted @ 2014-01-15 00:12 Wine93 阅读(599) 评论(0) 推荐(0)