传送门:QAQQAQ

题意:在一个树上放置守卫,使每一个节点都至少有相邻一节点放置守卫,使最终经费最少

思路:树形DP

首先会想到没有上司的舞会,0表示不放守卫,1表示放守卫,但考虑到对于当前点不放守卫会有两种情况:

1.其父亲放守卫,则其儿子没必要放守卫

2.其父亲没放守卫,则其儿子必须至少有一个放守卫

所以思路就很明显了:dp1表示当前点放守卫,dp0表示当前点没守卫,其父亲有守卫,dp2表示当前没守卫,父亲没守卫,然后进行递推即可

读入时点可能是不按照顺序的,这点需要注意。

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1020+500;
const ll inf=2000000000;ll n,w[N],dp[N][3];//0:father1now0 1:now1 2:father0now0
vector<ll> v[N];ll checkmin(ll x,ll y,ll z)
{return min(min(x,y),z);
}void dfs(ll u,ll f)
{ll bl=0,minn=inf;for(ll i=0;i<(ll)v[u].size();i++){ll p=v[u][i];if(p==f) continue;dfs(p,u); dp[u][1]+=min(dp[p][1],dp[p][0]);dp[u][0]+=min(dp[p][2],dp[p][1]);if(dp[p][1]<=dp[p][2]){bl=1;dp[u][2]+=dp[p][1];}else{dp[u][2]+=dp[p][2];minn=min(minn,dp[p][1]-dp[p][2]);}}dp[u][1]+=w[u];if(!bl) dp[u][2]+=minn;
}int main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++){ll tmp,m;scanf("%lld",&tmp);scanf("%lld%lld",&w[tmp],&m);for(ll j=1;j<=m;j++){ ll x;scanf("%lld",&x); v[tmp].push_back(x);v[x].push_back(tmp);}}memset(dp,0,sizeof(dp));dfs(1,-1);printf("%lld",min(dp[1][1],dp[1][2]));return 0;
}

View Code

转载于:https://www.cnblogs.com/Forever-666/p/11234958.html

LOJ10157——皇宫看守(树形DP)相关推荐

  1. AcWing1077. 皇宫看守(树形DP)题解

    题目传送门 题目描述 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状,某些宫殿间可以互相望见. 大内保卫森严,三步一岗,五步一哨,每个宫殿 ...

  2. AcWing 1077. 皇宫看守(树形DP + 状态机DP)

    AcWing 1077. 皇宫看守(树形DP + 状态机DP) 一.问题 二.分析 1.思路分析 2.状态表示 3.状态转移 4.循环设计 5.初末状态 三.代码 一.问题 二.分析 1.思路分析 在 ...

  3. 1579: 【例 5】皇宫看守(最小支配集——贪心求解/树形DP)

    [题目描述] 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状,某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全 ...

  4. 【树形dp】vijos1144小胖守皇宫

    细节很精妙 描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步 ...

  5. Acwing 1077.皇宫看守

    Acwing 1077.皇宫看守 题目 输入格式 输出格式 数据范围 输入样例 输出样例 样例解释 分析 详细代码 这是我第一篇博客,如有侵权或者不足的地方,我将予以修改,并改正 题目 太平王世子事件 ...

  6. TYWZOJ[1580]皇宫看守

    题目描述 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状,某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候 ...

  7. 皇宫看守【SGOI-2】

    题目描述 问题描述: 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫殿都 ...

  8. 1077. 皇宫看守

    太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫各个宫殿的分布,呈一棵树的形状,宫殿可视为树中结点,两个宫殿之间如果存在道路直接相连,则该道路视为树中的一条边. 已知,在一个宫殿镇守的守卫不 ...

  9. Acwing 1077. 皇宫看守

    参考题目:Acwing 1077. 皇宫看守 题意 给定一个树,求覆盖所有点的最少花费. 算法:树形DP 时间复杂度: O ( n ) O(n) O(n) (每个点只被搜索一次) f 数组含义: f[ ...

最新文章

  1. 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!
  2. jquery获取data-*返回undefined小记
  3. SAP CRM Enterprise Search 培训材料
  4. Web服務器的配置方法
  5. Blazor 组件库开发指南
  6. 一站式云原生智能告警运维平台——SLS新版告警发布!
  7. 信息学奥赛一本通(2017:【例4.2】输出偶数)
  8. 飞机游戏跟踪导弹的算法[C#源码]
  9. c# 保存数据到txt (追加)
  10. spring源代码分析
  11. Atitit 互联网技术公司防爆指南技术规范标准流程 30个危险物品
  12. Linux配置DNS域名解析服务
  13. 笔记本电脑键盘失灵怎么办
  14. v4l2-ctl基本使用方法
  15. ckplayer6.8修改logo
  16. 编程彩虹c语言,c – 如何渲染彩虹光谱?
  17. go 注册登录 mysql_golang实现用户登录注册的方法
  18. vue使用百度地图(BMap)去掉百度地图的标志。
  19. 机场文员面试从何下手
  20. TableField的应用

热门文章

  1. SpringBoot面试题及答案整理
  2. 备份Linux系统的数据到坚果云
  3. TensorFlow基本原理,入门教程网址
  4. Enum,Int,String的互相转换 枚举转换
  5. SCCM2012软件更新(WSUS补丁)同步成功无法获取补丁问题
  6. Linux安装配置tomcat
  7. 树莓派进阶之路 (029) - 语音识别模块 LD3320(原创)
  8. HTTP Status 500 - An exception occurred processing JSP page /common/../left.jsp at line 20
  9. Ecstore跳过后台激活验证和shopexId授权
  10. android market 选择