一、题目

战略游戏

二、分析

dp1[i] : 第i个节点站士兵,照亮以i为节点的子树所需最少的士兵数;

dp0[i] : 第i个节点不站士兵,照亮以i为节点的子树所需最少的士兵数;

状态转移方程:

三、代码

#include<bits/stdc++.h>
using namespace std;
const int N=2000;int h[N],e[N*2],ne[N*2],idx;
int n;
int dp0[N],dp1[N];
bool st[N];void add(int a,int b)
{e[idx]=b;ne[idx]=h[a];h[a]=idx++;
}void dfs(int root)
{dp1[root]=1;dp0[root]=0;for(int i=h[root];i!=-1;i=ne[i]){int j=e[i];if(!st[j]){st[j]=true;dfs(j);st[j]=false;dp1[root]+=min(dp1[j],dp0[j]);dp0[root]+=dp1[j];}}
}int main()
{cin>>n;for(int i=0;i<n;i++)h[i]=-1;for(int i=1;i<=n;i++){int k,a,b;cin>>a>>k;for(int j=1;j<=k;j++){cin>>b;add(a,b),add(b,a);}}int Min=0x3f3f3f3f;for(int i=0;i<n;i++){st[i]=true;dfs(i);st[i]=false;Min=min(Min,min(dp0[i],dp1[i]));}cout<<Min<<endl;return 0;
}

洛谷P2016 战略游戏 - 树形DP相关推荐

  1. 洛谷P2016 战略游戏【树形dp】

    P2016 战略游戏 时间限制 1.00s 内存限制 125.00MB 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题. 他要建立一个古城堡,城堡 ...

  2. 洛谷P2016战略游戏

    传送门啦 战略游戏这个题和保安站岗很像,这个题更简单,这个题求的是士兵人数,而保安站岗需要求最优价值. 定义状态$ f[u][0/1] $ 表示 $ u $ 这个节点不放/放士兵 根据题意,如果当前节 ...

  3. P2016 战略游戏[树形dp]

    题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题. 他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能 ...

  4. 洛谷 2016 战略游戏(树形DP)

    题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题. 他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能 ...

  5. AcWing323. 战略游戏(树形DP)题解

    题目传送门 题目描述 鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他找不到解决问题的方法,这让他很伤心. 现在他有以下问题. 他必须保护一座中世纪城市,这条城市的道路构成了一棵树. 每个节点上的士兵可以 ...

  6. 战略游戏——树形dp+状态机——没有上司的舞会翻版

    战略游戏 思路: 由根节点出发,根据状态进行转移: 状态转移方程: f[u][0] +=f[i][1];f[u][1] += min(f[i][0],f[i][1]); 代码 #include < ...

  7. 323. 战略游戏 (树形dp)

    题目 题意: 给定n个点的树,选择最少的点,使得可以涵盖到所有的边.(不一定n-1条边,至多10*n条边) 思路: 树形dp. f[i][0]: 以i为根且选择i的最少点数的方案 f[i][1]: 以 ...

  8. 洛谷 P1272 重建道路(树形DP)

    P1272 重建道路 题目描述 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟 ...

  9. 洛谷P3360偷天换日(树形DP)

    题目背景 神偷对艺术馆内的名画垂涎欲滴准备大捞一把. 题目描述 艺术馆由若干个展览厅和若干条走廊组成.每一条走廊的尽头不是通向一个展览厅,就 是分为两个走廊.每个展览厅内都有若干幅画,每副画都有一个价 ...

最新文章

  1. 【计算机网络】数据链路层 : 概述 ( 基本概念 | 功能 | 为 “网络层“ 提供的服务 )
  2. 极客时间《玩转Git三剑客》之GItHub剑客
  3. boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::map的测试程序
  4. python 中cookie_使用Python分析Cookies
  5. python常考题_Python语言基础考察点:python语言基础常见考题(一)
  6. inner join,left join,right join 三者的用法
  7. (补)20210623:力扣第246周周赛(下)
  8. [设计模式] 15 解释器模式 Interpreter
  9. 自制Json解析工具(易语言)
  10. UCF101动作识别数据集
  11. ppapi插件(可自定义方法)
  12. 卸载了瑞星防火墙 感觉真是爽
  13. rk3288 android 6.0固件,RK3288固件升级教程
  14. 智慧教室解决方案-最新全套文件
  15. lego-loam 跑 kitti00包(kitti2bag+lego-loam+evo)详细版
  16. unity3d 中能画出漂亮图案的函数之玫瑰图案
  17. python数据分析案例分析题_Python数据分析-案例分析
  18. 树莓派64位系统bullseye如何成功安装Qt5
  19. vscode更新之后rg.exe占用cpu过高
  20. PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理

热门文章

  1. Mac如何设置手写输入?
  2. 虹科分享 | 解析数据加密,保护你的数据安全
  3. gprs模块http mqtt_基于GPRS模块的MQTT至MODBUS协议转换器
  4. 渐入佳境-2月份英语总结
  5. ABOV单片机内部看门狗WDT的代码实现讲解及示例代码-[MC96F6332D]
  6. 对停留在云计算概念层面已经腻了?请看《云计算》教材
  7. iphone 6 plus 人気 とまだ、このサイト特にベッドが片側にこのキー事実小さな印刷装置を設定する事に
  8. 关于专利权的期限、终止和无效
  9. Unity2016 Unity3D开发VR游戏的经验
  10. Kotlin系列四:标准函数、扩展函数、高阶函数、内联函数