一道显而易见的树形dp

每个人都有当根节点的机会

然后先告诉需要花费时间长的,再告诉短的

转移方程

dp[u]=max(dp[u],dp[v]+i−1)

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 1010
#define INF 999999999int n;
int dp[maxn];
int head[maxn],cnt;
int www[maxn],minn = INF;struct EDGE {int nxt,to;
} edge[maxn * 2];int cmp(int a,int b) {return a > b;
}void add(int x,int y) {edge[++cnt].to = y;edge[cnt].nxt = head[x];head[x] = cnt;
}void dfs(int u,int fa) {int son[maxn] = {0};int total = 0;for(int i = head[u]; i; i = edge[i].nxt) {int v = edge[i].to;if(v != fa) {dfs(v,u);son[++total] = dp[v];}}sort(son + 1,son + total + 1,cmp);//先传给花时间长的for(int i = 1; i <= total; i++)dp[u] = max(dp[u],son[i] + i - 1);//转移方程,儿子到根节点的距离i再减1dp[u] += 1;
}int main() {scanf("%d",&n);for(int i = 2; i <= n; i++) {int a;scanf("%d",&a);add(a,i);add(i,a);}for(int i = 1; i <= n; i++) {//每个点都当一遍根节点memset(dp,0,sizeof(dp));//别忘了每次清零dfs(i,0);minn = min(minn,dp[i]);存最小值www[i] = dp[i];//记录每次的值
    }printf("%d\n",minn);for(int i = 1; i <= n; i++)if(minn == www[i])printf("%d ",i);return 0;
}

集训回来,从今天开始疯狂补博客了

做了蛮多题,都想写写题解加深印象,希望不会鸽

转载于:https://www.cnblogs.com/sevenyuanluo/p/10351690.html

luogu P2018 消息传递相关推荐

  1. 洛谷——P2018 消息传递

    P2018 消息传递 题目描述 巴蜀国的社会等级森严,除了国王之外,每个人均有且只有一个直接上级,当然国王没有上级.如果A是B的上级,B是C的上级,那么A就是C的上级.绝对不会出现这样的关系:A是B的 ...

  2. 蒙德里安森林算法_DP没入门就入土

    写在前面 记录刷的DP题 以及 打死都不可能想到状态设计DP系列 汇总 线性DP 经典例题 LIS问题 即最长上升子序列问题.给定一个长度为 \(n\) 的数列 \(A\),求数值单调递增的子序列的最 ...

  3. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

  4. [Luogu] 选学霸

    https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...

  5. Luogu 2470 [SCOI2007]压缩

    和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...

  6. Study on Android【三】--Intent消息传递

    在前面写Android的ContentProvider时候,可以看到那是基于观察者模式的一个消息传递方法.每一个Cursor.ContentResolver做为一个小的注册中心,相关观察者可以在这个中 ...

  7. 【Luogu】P1613 跑路

    [Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...

  8. Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...

  9. Luogu P3177 [HAOI2015] 树上染色(树上背包)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...

最新文章

  1. 学术分享丨面向机器人的学习算法简述
  2. RHEL5.3下搭建LAMP+Django环境(二)
  3. Python字符串常用函数详解
  4. 【CEO赠书】《精益数据分析》:如何构建数据指标体系
  5. 关于idea右侧的maven project 如何调出来
  6. C. Vanya and Scales
  7. 手机站点击商务通无轨迹解决方法
  8. C#LeetCode刷题之#720-词典中最长的单词(Longest Word in Dictionary)
  9. html编辑四则运算,前端四则运算验证
  10. vscode jupyter补全_Cern ROOT 在jupyter里的使用
  11. matlab车牌定位与识别,基于matlab车牌的定位与分割识别程序概要
  12. mysql sql查询当天_sql查询当天数据
  13. trados 有道api_塔多思翻译附插件下载-外语准确机翻工具插件(TRADOS)下载2019版-西西软件下载...
  14. 《AP音频分析仪的使用》
  15. 微信小程序获取用户信息及手机号授权的流程
  16. 数字化背景下的经济社会发展的新特征 新趋势
  17. 数据结构——2-3树
  18. 文心一言打开f12后进入空白页面
  19. caffe内CHECK_EQ等函数意义解释
  20. 什么是内网/局域网,局域网管控软件有什么用...

热门文章

  1. python判别性别的代码_python如何实现性别识别 python实现性别识别代码示例
  2. 极光推送 java 绑定别名_极光推送-别名篇
  3. php form表单验证,Validform表单验证总结篇
  4. 五子棋 鼠标 C语言,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
  5. 国内现在web前端高手薪资都拿多少?
  6. 前端,到底什么来路?
  7. 前端学习入门,如何系统的学习前端?
  8. 零基础web前端学习之JavaScript 和css 阻塞
  9. ajax实现环境,基于jQuery实现的Ajax(Django环境)
  10. cocos creator 判断双击_Creator | 编辑器中可操作顶点的多边形遮罩