有一颗苹果树,每个节点上面有很多苹果,从一个节点到另外一个可以到达的节点花费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
                             
                    
                        
                            
                            
                                题目描述看的莫名其妙,很久才看懂。就是很裸的树形背包问题吧,状态是dp(i,j)表示节点i取到j个客户能得到的最大收益。注意一开始初始化的时候所有j为0的时候应该是0,然后其他值都要初始化成负无穷,因为收益有可能是负值。然后做01背包的时候注意方向,防止出现取某一个元素多次#include #inc...
                            
                            
                                分类:
其他好文   时间:
2014-08-09 18:29:58   
                                阅读次数:
324
                             
                    
                        
                            
                            
                                Transfer water
Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)
Total Submission(s): 3775    Accepted Submission(s): 1356
Problem Description
XiaoA lives...
                            
                            
                                分类:
其他好文   时间:
2014-08-09 11:46:50   
                                阅读次数:
323
                             
                    
                        
                            
                            
                                Ice_cream’s world II
Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2744    Accepted Submission(s): 630
Problem Description
After ...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 21:20:26   
                                阅读次数:
335
                             
                    
                        
                            
                            
                                Command Network
Time Limit: 1000MS
 
Memory Limit: 131072K
Total Submissions: 12648
 
Accepted: 3656
Description
After a long lasting war on words, a war on arms fina...
                            
                            
                                分类:
Web程序   时间:
2014-08-08 18:10:36   
                                阅读次数:
280
                             
                    
                        
                            
                            
                                一开始看错题了,后来发现原来是在一颗带权的树上面求出距离每一个点的最长距离,做两次dfs就好,具体的看注释?#include #include #include #include #include #include #include #include #include #include #inclu...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 15:35:06   
                                阅读次数:
236
                             
                    
                        
                            
                            
                                poj 1655:http://poj.org/problem?id=1655题意: 给无根树, 找出以一节点为根, 使节点最多的树,节点最少。题解:一道树形dp,先dfs 标记 所有节点的子树的节点数。 再dfs 找出以某节点为根的最大子树,节点最少。 复杂度(n)/***Good Luck***...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 12:25:25   
                                阅读次数:
246
                             
                    
                        
                            
                            
                                和poj3107,poj1655一样的方法#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define INF 100000000...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 04:18:05   
                                阅读次数:
350
                             
                    
                        
                            
                            
                                和poj1655的方法完全一样,但是这道题的n的范围大了,用vector存图会TLE,所以改用前向星来存图就可以了。这里解释一下前向星存图的方法:其实就是用静态链表来实现邻接链表,这样可以避免使用指针。head[i]数组来记录每个节点的第一条边;每条边用结构体e[i]来存,e[i].v表示这条边指向...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 04:17:45   
                                阅读次数:
321
                             
                    
                        
                            
                            
                                方法:就记节点1为树的根,两次dfs,第一次求出每个节点的所有子孙再加上它自己的节点总数num[i]。第二次就算出每个节点的balance值bal[i],算的时候就比较节点i它所有子节点的num值(删掉它之后以每个它的子节点为根形成一棵新树)还有n-num[i]的值(删掉i之后它的父节点及其相关节点...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 04:16:45   
                                阅读次数:
237