Poj 1947 Rebuilding Roads
来源:互联网 发布:流星网络电视怎么注册 编辑:程序博客网 时间:2024/06/07 05:22
树dp+背包
考虑是否加入子树k
时间复杂度
#include<cstdio>#include<vector>#include<algorithm>#include<cstring>using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 200;vector<int> edge[maxn];int dp[maxn][maxn];void dfs(int st,int fa){ dp[st][1] = 0; for(vector<int>::iterator it = edge[st].begin();it!=edge[st].end();it++){ int x = *it; if(x == fa) continue; dfs(x,st); for(int v = maxn-1;v >= 1;v--){ dp[st][v]++; for(int k=1;k<v;k++){ dp[st][v] = min(dp[st][v-k] + dp[x][k],dp[st][v]); } } } }int anser(int n,int p){ int ret = dp[1][p]; for(int i=2;i<=n;i++){ ret = min(ret,dp[i][p]+1); } return ret;}int main(){ int n,d; while(~scanf("%d %d",&n,&d)){ memset(dp,0x3f,sizeof(dp)); int l,r; for(int i=1;i<n;i++){ scanf("%d %d",&l,&r); edge[l].push_back(r); edge[r].push_back(l); } dfs(1,0); printf("%d\n",anser(n,d)); } return 0;}
0 0
- POJ 1947 Rebuilding Roads
- poj 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- poj 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- poj-1947-Rebuilding Roads
- POJ 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- POJ 1947 Rebuilding Roads
- POJ 1947--Rebuilding Roads
- POJ 1947 Rebuilding Roads
- poj-1947 Rebuilding Roads
- Poj 1947 Rebuilding Roads
- POJ 1947 Rebuilding roads
- 【poj 1947】 Rebuilding Roads
- first day
- 基于 CoreText 实现的高性能 UITableView
- poj1269直线交点
- 基于随机森林的特征选择算法
- 搜索引擎研究---网络蜘蛛程序算法相关资料 Part V (共5部分)
- Poj 1947 Rebuilding Roads
- JS 根据今天的日期获取本周星期一与星期天的日期
- Excel Sheet Column Number
- 工作环境配置
- 面试总结
- 查看linux 下已经安装的软件包信息
- IP地址和数字之间转化的算法
- AUTOWIRE_NO的作用
- Spring与Hibernate整合中的数据源配置