zoukankan      html  css  js  c++  java
  • 集训Day 8 2020.3.8 动态规划(三)

    集训Day 8 2020.3.8

    动态规划(三)

    1.P1352 没有上司的舞会

    某大学有(N)个职员,编号为(1)~(N)。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的 直接上司。现在有个周年庆宴会,宴会每 邀请来一个职员都会增加一定的快乐指数(R_i),但是呢,如果某个职员的直接上司来参加 舞会了,那么这个职员就无论如何也不肯 来参加舞会了。所以,请你编程计算,邀 请哪些职员可以使快乐指数最大,求最大 的快乐指数。

    题解

    这大概才是经典树形dp吧……
    f[x][0/1]表示以x为根的子树,且x不参加/参加 舞会的最大快乐值

    f[x][0]=sigma{max(f[y][0],f[y][1])} (y是x的儿子)
    f[x][1]=sigma{f[y][0]}+happy[x] (y是x的儿子)
    

    先找到唯一的树根root
    ( ext{ans}=max(f_{root,0},f_{root,1}))

    2.P2016 战略游戏

    现在要在一棵树上布置士兵,每个士兵在 结点上,每个士兵可以守护其结点直接相 连的全部边,问最少需要布置多少个士兵。

    题解

    dp[i][0]表示这个点不选(那么子结点就必 须全部都要选了),故+儿子选
    dp[i][1]表示这个点选,那么子结点就是 +min(儿子选/不选)
    答案是min(dp[root][0],do[root][1]);

    3.POJ2378

    给一颗树,问删除哪些结点可以使得剩下的每个子图的结点数(le)总数/2。

    题解

    显然一个节点的所有儿子的子树都(le)总数/2并且n-它子树节点(le)总数/2
    那么这个点就是一个合法的点。
    那么size[i]就可以表示i节点的子树节点个数, 通常我们称之为子树大小(所以这题根本不是dp啊)

    4.ZOJ-3201

    给一棵树,有点权,问这棵树大小为k的子 树最大的权值和是多少

    题解

    设dp[i][j]表示i点大小为j的子树的最大权值 和,则

    dp[u][j] = max(dp[u][j], dp[u][k] + dp[v][j - k])
    

    复杂度(O(kn^2)),但它并不是最优复杂度。
    稍后我们会进一步优化。

    5.POJ-3659

    (nin [1,10000])个点,(n-1)条边,树形结构, 从n个点中取尽量少的点构成一个集合,使 剩下所有点都能与这个集合中的部分点相 连。

    题解

    和士兵那道题是不是很相似?
    但是这道题dp还需要多考虑父亲的儿子的影响
    dp[i][0]表示i结点不布置士兵,i的父亲要去 覆盖i。
    dp[i][1]表示i结点不布置士兵,但是其子结点存在布置了士兵的结点(故i已经被覆盖)
    dp[i][2]表示i结点布置士兵

    是不是dp[u][1]比较难处理?

    并且至少要选一个dp[v][2],如果选了那自然是最好的。
    否则dp[u][1]+=min(dp[v][2]-dp[v][1])

    作业

    1.HDU-2196

    给一棵树,有n个结点,结点之间的边有权 值,问每个结点的最远结点距离其多远。
    提示:
    https://blog.csdn.net/u011426016/article/d etails/89164896

    2.P1077 摆花

    P1352,P2016,2378@POJ,3201@ZOJ,3659@POJ,2196@HDU,P1077

    要做就做南波万
  • 相关阅读:
    【Android】11.2 通过重写对应的方法保存和恢复实例的状态
    【Android】11.1 Activity的生命周期和管理
    【Android】11.0 第11章 活动和片段--本章示例主界面
    【Android】10.5 滚动视图(RecyclerView)
    【Android】10.4 卡片视图
    【Android】10.3 网格视图(GridView)
    【Android】10.2 使用Android Support Library增强组件功能
    【Android】10.1 扩展组件库和其他视图--本章示例主界面
    【Android】9.3 自定义列表视图的外观
    【Android】9.2 内置行视图的分类和呈现效果
  • 原文地址:https://www.cnblogs.com/liuziwen0224/p/xjx8.html
Copyright © 2011-2022 走看看