DP|树形DP
MaJorie555
我们向右偏左的坠落,琢磨着寻求自我
展开
-
HDU1011 Starship Troopers【树形DP】
题目链接:HDU1011 Starship Troopers 题意:n个房间,m个士兵,给出每个房间的bug数和价值,每个士兵可以消灭20个bug,对于每个房间,只有当前的bug被全部消灭才能进入与它相连的房间,如果当前房间没有bug也要留一个士兵,求最多可以获得的总价值; 分析:dp[i][j]表示房间i有j个士兵的价值; #include<bits/stdc++.h> #d...原创 2019-10-17 16:20:28 · 159 阅读 · 0 评论 -
HDU1520 Anniversary party【树形DP】
题目链接:HDU1520 Anniversary party 题意:给你一棵树,每个点都有价值,父子不可同时选择,问选择的点的最大价值和; 分析:找到根,然后向下DFS树形DP,由子节点更新父节点,dp[i][1]表示选择i,dp[i][0]表示不选择i,然后向上回溯更新父节点; #include<bits/stdc++.h> #define pb push_back usin...原创 2019-10-17 14:12:22 · 107 阅读 · 0 评论 -
HDU2196 Computer【树形DP】
题目链接:HDU2196 Computer【树形DP】 题意:给你一个树,求出所有节点在树中能到达的点的最远距离; 分析:dp[i][0],表示顶点为i的子树的,距顶点i的最长距离;dp[i][1],表示Tree(i的父节点)-Tree(i)的最长距离+i跟i的父节点距离;dp[i][0]通过dfs1可以很快求出;dp[i][1]可以通过父节点转移来,要维护一个最长mx1和经过的子节点v1,次...原创 2019-10-16 21:43:02 · 101 阅读 · 0 评论