题目大意:
一棵树上每一个节点都有几个苹果。问在根节点出发,走不大于K步的情况下最多能取多少个苹果。
解题思路:
树形DP,对于每一个子树的根节点src,都有dp[src][i][0],表示从src走i步可以回到src最多能够得到多少苹果。dp[src][i][1]表示从src走i步没有回到src最多能够得到多少苹果。
状态有三种转移方式:
1、用i-j-2步走其他子树回到根节点...
分类:
移动开发 时间:
2014-06-22 15:23:49
阅读次数:
264
POJ 1006 Biorhythms (数论-中国剩余定理)
题目大意:
人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天开始,算出最少再过多少天后三个峰值同时出现。
解题思路:
首先化简一下问题:欲求从某天开始,算出再过多少天后三个峰值同时出现,设要求的这个值为ans
...
分类:
其他好文 时间:
2014-06-18 12:25:14
阅读次数:
157
POJ 1201 Intervals(图论-差分约束)
题目大意:
n行,每行a,b,c,表示在区间a,b内要找c个数,问你总共至少要找多少个数?
解题思路:
差分约束系统。
在本题中,如果[a,b]中要找c个元素,那么:s[b]-s[a-1]>=c,我们可以推得:s[a-1] - s[b] <= -c
同时,由于每一个值上最多只能含有一个元素,那么:s[i] - s[i-1]=0 推得:s[i-1] - s[i] <=0
这样:我们有了三个约束不等式:
s...
分类:
其他好文 时间:
2014-06-18 08:05:51
阅读次数:
245
POJ 3169 Layout (图论-差分约束)
题目大意:
n头奶牛按1到n排好序,md个限制及mt个限制,md行表示奶牛A与奶牛B相差最多D,mt个限制奶牛A与奶牛B相差最少D,问你奶牛1与奶牛n最多相差多少?
解题思路:
限制条件 :
1、相邻奶牛之间,编号大的距离大于编号小的,即 dist[1]-dist[2]<=0,dist[2]-dist[3]<=0,dist[3]-dist[4]<=0。。。。dist[n-1]-dist[n]<=0
2、md个限制 A与奶牛B相差最多D,dist[A]...
分类:
其他好文 时间:
2014-06-18 06:07:39
阅读次数:
209
树形DP的第一题,看了好几天才明白....
题目大意:
有一只蜗牛爬上某个树枝末睡着之后从树上掉下来,发现后面的"房子"却丢在了树上面, 现在这只蜗牛要求寻找它的房子,它又得从树根开始爬起去找房子。现在要求一条路径使得其找到房子所要爬行的期望距离最小。
解题思路:
影响期望的因素有树的结构,分支节点上是否有虫子,蜗牛走的路线。
对于任意一棵子树来说树的结构,分支节点上是否...
分类:
其他好文 时间:
2014-06-17 22:32:43
阅读次数:
197
没想到线段树的基本用法这么长时间没写了还没有忘,1A的感觉还是很爽的。
题目大意:
中文题,点此查看题目。
解题思路:
线段树的区间更新与查询。
lazy标记的使用。
当需要返回区间多个值时可以使用引用参数。
下面是代码:
#include
#include
#include
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-06-16 19:40:08
阅读次数:
145
题目链接:Codeforces 439C Devu and Partitioning of the Array
题目大意:给出n个数,要分成k份,每份有若干个数,但是只需要关注该份的和为奇数还是偶数,要求偶数堆的个数为p。输出方案。
解题思路:首先先将数组按照奇偶排序,也可以分开储存。然后先单独分k-p个奇数,然后后面的就将两个奇数当一个偶数分配,分配过程中计算是否满足,比如...
分类:
其他好文 时间:
2014-06-16 14:51:17
阅读次数:
216
题目链接:Codeforces 437D The Child and Zoo
题目大意:小孩子去参观动物园,动物园分很多个区,每个区有若干种动物,拥有的动物种数作为该区的权值。然后有m条路,每条路的权值为该条路连接的两个区中权值较小的一个。如果两个区没有直接连接,那么f值即为从一个区走到另一个区中所经过的路中权值最小的值做为权值。问,平均两个区之间移动的权值为多少。
解题思路:并查集+...
分类:
其他好文 时间:
2014-06-15 15:12:33
阅读次数:
157
题目连接:Codeforces 437C The Child and Toy
题目大意:孩子有一个玩具,有n个部件组成,m条绳子组成,每条绳子连接两个部件。小孩比较顽皮,要将玩具拆成不可分割的部件,每次剪断一条绳子的代价是该绳子连接的两个部件的权值中较小的值。问说最小的总代价是多少。
解题思路:以为每条边都是要被剪断的,所以将节点按照代价值从大到小排序,每次拿掉权值大的点,与该点连接并...
分类:
其他好文 时间:
2014-06-15 13:31:23
阅读次数:
170
题目链接:Codeforces 437E The Child and Polygon
题目大意:给出一个多边形,问说有多少种分割方法,将多边形分割为多个三角形。
解题思路:首先要理解向量叉积的性质,一开始将给出的点转换成顺时针,然后用区间dp计算。dp[i][j]表示从点i到点j可以有dp[i][j]种切割方法。然后点i和点j是否可以做为切割线,要经过判断,即在i和j中选择的话点k的话...
分类:
其他好文 时间:
2014-06-15 10:31:02
阅读次数:
209