zoukankan      html  css  js  c++  java
  • POJ 1463 Strategic game

      好久没有单独开贴写解题报告了,这是昨天队里DIY的一道题。题意是给一颗树,问最少在多少个根节点上放上哨兵能监视整棵树。

    无非就是枚举根节点,选择放还是不放。

    dp[root][0]表示root节点不放哨兵,则root->v上都要放上哨兵。dp[root][0] = sum(dp[root->v][1]);

    dp[root][1]表示root节点放哨兵,则root->v节点上取放或者不放的最小值,dp[root][1] = sum(min(dp[root->v][0], dp[root->v][1]));

    ps:当时纠结在无向图上了,找不到根节点,所以也就没敢继续想。其实只需要建有向图就可以,转移方程里边已经把无向边这种情况包括了。找如度为0的点作为整棵数的root节点,然后记忆华搜索。。。确实是一道很水的树形dp,还没搞出来,被队长鄙视了。。。被大家鄙视了。。。T_T。看来dp之流确实有经验之谈,多积累吧。。。

  • 相关阅读:
    工具类官网Web原型制作分享-Adobe
    还在为黑白网页设计犯难?12款设计帮你轻松解决!!!
    联系我们吧
    单调栈&&单调队列
    *模板--数据结构
    非递归线段树专题
    反素数
    线段树专题训练
    BST
    排列与组合
  • 原文地址:https://www.cnblogs.com/vongang/p/2464711.html
Copyright © 2011-2022 走看看