上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 33 下一页
摘要: 题目大意:一棵树,带点权。将这棵树分成两部分,找出使得两部分的点权和的差最小。 题目分析:直接dfs即可。找出每棵子树u的点权和size(u),如果以u和它的父节点之间的边为界,那么两边的点权和分别为sum-size(u)和size(u)。 代码如下: 阅读全文
posted @ 2016-04-24 21:55 20143605 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一张带权无向图,权有两个参数(d,c),分别表示走过这条边的时间和建造这条边的代价。要求选出一些边,使得0节点到其他点的距离之和最短,并在最短的基础上求最小代价。 题目分析:这是16年浙江省赛的一道题。先求出0到所有点的最短路,然后找出所有可能在最短路径上的边,最后在每一个节点的入边之中都 阅读全文
posted @ 2016-04-24 09:53 20143605 阅读(970) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一棵树,对于所有的点,找出距它最远点的距离,然后将这些距离排成一列,找出最长的一个区间满足:其中的最大值减去最小值不大于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) 编辑
摘要: 题目大意:一棵n个节点的树,找出最大子树最小的节点。 题目分析:过程类似求重心。 代码如下: 阅读全文
posted @ 2016-04-16 23:33 20143605 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一棵n个节点的树,找出所有的点满足:删除它之后,产生的最大(这里节点数最多即为最大)新树中节点数不超n的一半。 题目分析:两次深搜,过程类似求重心。 代码如下: 阅读全文
posted @ 2016-04-16 23:08 20143605 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给n个正数,找出满足A^B>max(A,B)的对数。 题目分析: 代码如下: 阅读全文
posted @ 2016-04-16 21:59 20143605 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一棵带边权无根树,边权代表距离,求距离小于等于k的点对儿数。 题目分析:这两个点之间的路径只有两种可能,要么经过根节点,要么在一棵子树内。定义depth(i)表示点 i 到根节点的距离,belong(i)表示 i 所属的子树。如果路径经过根节点,那么满足depth(i)+depth(j)< 阅读全文
posted @ 2016-04-14 23:44 20143605 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一棵无根树,找出所有满足下面的条件的点:删除它后,最大子树中的个数最少。 题目分析:两次深搜,第一次找出子树中节点的个数,第二次维护最大子树。 ps:边用vector保存时会超时。。。 代码如下: 阅读全文
posted @ 2016-04-10 10:45 20143605 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一棵有n个节点的有根树,1为根节点,边带权,表示删掉这条边的代价。现在要删掉一些边,使叶子节点不能到达根节点。但是,每次删除的边的代价不能超过limit,删掉的边的总代价不能超过m,求最小的limit的可能取值。 题目分析:二分枚举limit,定义状态dp(u)表示将u与它管辖的叶子节点失 阅读全文
posted @ 2016-04-09 23:52 20143605 阅读(312) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 33 下一页