摘要: 题目大意:给一棵树,对于所有的点,找出距它最远点的距离,然后将这些距离排成一列,找出最长的一个区间满足:其中的最大值减去最小值不大于m。 题目分析:两次dfs找出距每个节点的最远距离,然后可以通过维护两个单调队列来找最长区间,也可以通过线段树区间合并来找,后者比较麻烦。 代码如下: 阅读全文
posted @ 2016-04-21 22:43 20143605 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 题目大意:在一棵树中选出一些点,选每个点的代价为w(i),并且对于点 i ,在距离它lim(i)之内必须选一个点,使它作为 i 的依赖点。求最小代价。 题目分析:定义状态dp(u,k)表示使u为根节点的子树满足题意并且节点u依赖节点k产生的最小代价,定义best(u)表示子树u满足题意得最小代价。则 阅读全文
posted @ 2016-04-21 20:18 20143605 阅读(228) 评论(0) 推荐(0) 编辑