欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF1153D(树形DP+数值排名)

2022-09-05 15:56 作者:Clayton_Zhou  | 我要投稿

 https://codeforces.com/problemset/problem/1153/D

题意:

n个节点以1为根的一棵树,每个非叶子节点都有一个操作max或shmin(0表示min,1表示max),表示这个节点中的值应该分别等于其子节点中所有值的最大值或最小值。假设树上有k个叶节点,你可以将每个叶节点填上[1,k]的数字,且每个数字只使用一次,求根节点的最大值


题解:

树形dp+数值排名

g[i]代表i节点 在这个子树的所有叶子节点中可以取得的最小排名,

则1节点的答案最大就是 k + 1 - g[1], g[1]为1即最大为k


转移:

当前节点如果操作是1,即max,取最大值,那我们就要选一个最小的排名来更新父亲节点,所以对下面的节点求min;


如果操作是0,即min,取最小值那就保证当前节点排名最靠后,所以就是对下面所有节点的排名求sum,就是下面所有节点的最大排名,即最小值


CF竞赛题目讲解_CF1153D(树形DP+数值排名)的评论 (共 条)

分享到微博请遵守国家法律