题目大意:有一颗长满苹果的苹果树,有两个操作。
1.询问以一个点为根的子树中有多少个苹果。
2.看看一个点有没有苹果,如果没有苹果,那么那里就马上长出一个苹果(= =!);否则就把那个苹果摘下来。
思路:进行一次深搜,将每个节点最开始出现的时间和最后出现的时间记在一个数组里,那么这两点之间的点就是它以及它的子树的二倍,然后就用树状数组来维护区间和就行了。
CODE:
...
分类:
移动开发 时间:
2014-10-16 12:08:52
阅读次数:
200
本文是我借助 Google 从网上拼凑的文章,可能条理不是很清晰,希望对广大程序员们有些帮助。一、成长的寓言:做一棵永远成长的苹果树一棵苹果树,终于结果了。第一年,它结了10个苹果,9个被拿走,自己得到1个。对此,苹果树愤愤不平,于是自断经脉,拒绝成长。第二年,它结了5个苹果,4个被拿走,自己得到1...
分类:
其他好文 时间:
2014-10-10 11:19:54
阅读次数:
234
题目链接:Codeforces 449C Jzzhu and Apples
题目大意:Jzzhu从苹果树上获得n个苹果,标号从1~n,现在要将他们以两个为一组卖给商家,要求一组中的两个苹果的编号最大公约数大于1,分的组数尽量多。
解题思路:枚举公约数d,只枚举素数,因为合数的可以在更小的素数被枚举。将所有没用过并且编号为d的倍数的苹果拿出来,两两组队,如果个数为奇数,那么就将2d留出来...
分类:
移动开发 时间:
2014-09-24 16:47:24
阅读次数:
280
思路:用邻接表存图,卡vector【这里被卡哭了QAQ】,用dfs遍历的顺序重新给节点编号,遍历时记录儿子数目。用dfs序建立线段树,change的时候单点更新,查询某子树上的苹果树即是查询该节点[i, i+childnum]这个区间的苹果数目,i指dfs序。总结:邻接表出边入边傻傻搞不清楚QAQA...
分类:
其他好文 时间:
2014-09-09 17:55:19
阅读次数:
243
爱摘苹果的小明
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述小明家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,小明就会跑去摘苹果。小明有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及小明把手伸直的时候能够达到的最大高度,请帮小明算一下她能够摘到...
分类:
移动开发 时间:
2014-09-04 17:05:29
阅读次数:
213
1 /* 2 题意: 有两棵苹果树,每一棵苹果树每一秒间隔的掉落下来一个苹果,一个人在树下接住苹果,不让苹果掉落! 3 人在两棵树之间的移动是很快的!但是这个人移动的次数是有限制的,问最多可以接住多少个苹果! 4 5 思路:dp[i][j]表示的是前 i个苹果掉落...
分类:
移动开发 时间:
2014-08-23 22:52:01
阅读次数:
212
有一颗苹果树,每个节点上面有很多苹果,从一个节点到另外一个可以到达的节点花费1步,求k步最多能吃到多少苹果,起始点为1,可以不回到起始点。
这是典型的回溯型树状dp。
dp[i][j][0]代表以i为根节点的子树最多j步后回到i能吃到的最多的苹果,
dp[i][j][1]代表以i为根节点的子树最多j步后不回到i节点最多能吃到的子树。那么状态转移就分三步了。
(1)dp[...
分类:
其他好文 时间:
2014-08-09 21:31:39
阅读次数:
308
http://acm.hdu.edu.cn/showproblem.php?pid=4925
尽量让每棵苹果树周围都施肥,每次找到一个空地种上苹果树之后,使其周围的空地施肥,不再种苹果树。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#in...
分类:
移动开发 时间:
2014-08-08 16:17:46
阅读次数:
260
题目:hdu4925Apple Tree(找规律)
题目大意:给出N* M 的矩阵,然后每个格子要不种苹果,要不施肥:在(X,Y)施肥后,它上下左右的苹果树的产量会翻倍。种了苹果数,产量为1.求这样的N * M个矩阵能得到的最大的苹果数。
解题思路:
对于2 * 2的矩阵: X代表施肥 , 有数字代表种树 X 2 这样是最好的。各自上的数字...
分类:
移动开发 时间:
2014-08-08 12:50:25
阅读次数:
205
题目链接题意 : 给你一块n×m的矩阵,每一个格子可以施肥或者是种苹果,种一颗苹果可以得到一个苹果,但是如果你在一个格子上施了肥,那么所有与该格子相邻(指上下左右)的有苹果树的地方最后得到的苹果是两倍,如果(i,j)有一颗苹果树,(i-1,j)与(i,j+1)施了肥,那么苹果应该是1的两倍2,2的两...
分类:
移动开发 时间:
2014-08-07 22:40:15
阅读次数:
278