![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形dp
the_conquer_zzy
计算机科学与技术专业
展开
-
二分图 hdu 1054 Strategic Game
这是个最小点覆盖问题,而最小点覆盖问题=二分图最大匹配数匈牙利算法是计算二分图最大匹配的算法:其dfs实现版本如下bool dfs(int v){ for(vector<int>::iterator it=tree[v].begin();it!=tree[v].end();it++){ int w=*it; //for if(!visited[原创 2017-07-13 22:54:22 · 200 阅读 · 0 评论 -
hdu 1011 starship troopers
这道题是一个树形 背包问题,或者说树形DP问题,房间的管道形成树。背包问题的特点: 最优子结构,可分解, 解决办法: 常见的有递归(自顶向下),搜索(自底向上),背包注意的问题,为什么要自底向上搜索????需要好好学习背包问题;#include <iostream>#include<vector>#include<cstdio>#include<cstring>using namespac原创 2017-06-09 17:01:53 · 228 阅读 · 0 评论 -
hdu 1158 Employment planning
这题有两种解题思路 1.dfs 但是由于dfs可能很多状态会重复搜索,所以需要记忆化搜索。记忆化搜索的典型方式是: dfs +dp 另dp[i][sum] 表示 第i个月时有sum个人时,剩余月份所需开销最小。 则dp[0][0] 即为最后结果。 对于第i 个月 刚开始有sum 个人,sum如果小于等于,则需要新招聘人员,那么dp[i][sum]=dp[i+1][person[i原创 2017-08-11 15:20:34 · 205 阅读 · 0 评论