【洛谷_P2016】战略游戏

DP或贪心(算法设计与分析) 小游戏 阿良很喜欢玩计算机游戏,特别是战略游戏,但是有时他不能尽快找到解所以常常感到很沮丧。现在面临如下问题:他必须在一个中世纪的城堡里设防,城堡里的道路形成一棵无向树。要在结点上安排最少的士兵使得他们可以看到所有边。你能帮助他吗? 你的任务是给出士兵的最少数目。 输入包含多组数据。每组数据表示一棵树,在每组数据中: 第一行是结点的数目。 接下来的几行,每行按如下格式描述一个结点: 结点标识符 : ( 道路的数目 ) 结点标识符1 结点标识符2 ...... 结点标识符道路的数目 或者 结点标识符 : (0) 对于 n (0<n<=1500) 个结点,结点标识符是一个从 0 到 n - 1 的整数。每条边在测试用例中只出现一次。 对于每组数据,各给出一个整数表示士兵的最少数目. 测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助 测试用例 1 以文本方式显示 4↵ 0:(1) 1↵ 1:(2) 2 3↵ 2:(0)↵ 3:(0)↵ 5↵ 3:(3) 1 4 2↵ 1:(1) 0↵ 2:(0)↵ 0:(0)↵ 4:(0)↵ 以文本方式显示 1↵ 2↵ 立即下载

战略游戏


Description

Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。
  请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。

Input

输入文件中数据表示一棵树,描述如下:
  第一行 N,表示树中结点的数目。
  第二行至第N+1行,每行描述每个结点信息,依次为:该结点标号i,k(后面有k条边与结点I相连),接下来k个数,分别是每条边的另一个结点标号r1,r2,…,rk。
  对于一个n(0 < n <= 1500)个结点的树,结点标号在0到n-1之间,在输入文件中每条边只出现一次。

Output

输出文件仅包含一个数,为所求的最少的士兵数目。
例如,对于如右图所示的树:
答案为1(只要一个士兵在结点1上)。

Sample Input

样例1

4
0 1 1
1 2 2 3
2 0
3 0

样例1图在这里插入图片描述

样例2

5
3 3 1 4 2
1 1 0
2 0
0 0
4 0

Sample Output

样例1

1

样例2

2

解题思路

挺简单的一道树形DP,我们用F[i][1]表示当前点放人的情况,用F[i][0]表示当前点不放人的情况,动态转移方程如下:
f[now][0]+=f[a[now][i]][1];f[now][0]+=f[a[now][i]][1];f[now][0]+=f[a[now][i]][1];
f[now][1]+=min(f[a[now][i]][1],f[a[now][i]][0]);f[now][1]+=min(f[a[now][i]][1],f[a[now][i]][0]);f[now][1]+=min(f[a[now][i]][1],f[a[now][i]][0]);
程序如下:

#include<iostream>
#include<cstdio>
using namespace std;

int n,a[1510][1510],hd[151000];
int b[151000],f[151000][2];

void dp(int now)
{
	b[now]=1;
	f[now][1]=1;
	for(int i=1;i<=hd[now];i++)
	{
		if(b[a[now][i]])
			continue; 
		dp(a[now][i]);
		f[now][0]+=f[a[now][i]][1];
		f[now][1]+=min(f[a[now][i]][1],f[a[now][i]][0]);
	}
}

int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x,k;
		scanf("%d%d",&x,&k);
		for(int j=1;j<=k;j++)
		{
			int t;
			scanf("%d",&t);
			a[x][++hd[x]]=t;
			a[t][++hd[t]]=x;
		}
	}
	dp(0);
	cout<<min(f[0][1],f[0][0])<<endl;
}

从理想光源到部分相干:Abbe与Hopkins模型在计算光刻中的演进与选择 本文深入探讨了计算光刻中Abbe模型与Hopkins模型的演进与选择,分析了理想光源与部分相干光源在光刻仿真中的关键差异。Abbe模型基于理想点光源假设,计算简洁但存在精度局限;Hopkins模型则通过互强度函数和TCC技术,更准确地模拟现实中的部分相干光源,尤其适用于先进节点光刻工艺。文章还提供了模型选择的实用建议,帮助工程师在精度与效率间取得平衡。 阅读详情

相关推荐

【ISAR成像定标方法(1)—转台目标的RD成像算法MATLAB仿真】

ISAR成像定标方法的研究具有重要意义,但是与之相关的学习资料以及仿真对于小白来说很难找或者很杂乱,本人作为小白之一在研究过程中苦不堪言,现在自己所要研究的定标内容已经完成,以后还学不学雷达也不一定,因为后面的路更难,现在打算把一些相关推导和仿真结果列出来,以供小白交流学习使用,希望能有点帮助。(PS:由于公式和符号的原因,采用图片形式说明)

此木旧年的博客 6418

动态规划·树形DP·题解【战略游戏】

文章目录题目题目描述输入格式输出格式样例题意思路代码 题目 WOJ#2532 战略游戏 洛谷P2016 战略游戏 这道题主要是看边的情况。 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能瞭望到所有的路。 注意:某个士兵在一个结点上时,与该结点相连...

Chenyu_oi的博客 1043

云架构师进阶【SAP迁移方案设计】手把手教您玩转SAP上云

一,项目背景介绍 今天又接到了北京某制造企业SAP迁移的场景,先简单说明一下,好好的SAP在运行着为什么要做迁移这类大动作呢?众所周知SAP的ERP是企业的绝对核心系统,尤其对于制造业更是核心的系统,这样一套核心系统还是生产环境在迁移的过程中必然要面临比较大的挑战,如果有任何问题的话,都会对企业的绩效产生很大的影响。 经过跟客户沟通才得知,客户的SAP原来的系统是托管在运营商机房里,近期感染了勒索病毒,导致业务宕机,SAP应用服务器无法启动,仅有的数据库服务器可以运行。基于上述情况公司领导当机立断决定迅

bdsh818的博客 4220

洛谷B2016浮点数向零舍入

但是需要注意的是转换的时候还是要定义long,如果Int的话某些测试样例无法通过,可能出现溢出问题。输入一个双精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。浮点数赋值给整型变量的时候,舍弃小数部分。一个整数,即向零舍入到整数的结果。还要注意转换的时候数值溢出问题。一个双精度浮点数x。

qq_44400759的博客 1390

超分算法 SwinIR: Image Restoration Using Swin Transformer

这篇文章结构比较简单,如果看过Swin-Transformer的话就没什么难点了。作者引入Swin-T结构应用于低级视觉任务,包括图像超分辨率重建、图像去噪、图像压缩伪影去除。网络由一个浅层特征提取模块、深层特征提取模块、重建模块构成。重建模块对不同的任务使用不同的结构。浅层特征提取就是一个3×3的卷积层。深层特征提取是k个RSTB块和一个卷积层构成。RSTB(Res- SwinIR: Image Restoration Using Swin Transformer[ICCV 2021]Abstract1.

qq_45122568的博客 1万+

告别C盘爆红!手把手教你将WSL2下的Ubuntu 22.04完整迁移到D盘(附清理指南)

本文详细指导如何将WSL2下的Ubuntu 22.04从C盘无损迁移到D盘,包括导出备份、注销原系统、导入新位置等关键步骤,并提供迁移后的优化配置、开发环境衔接及长期维护技巧,帮助用户彻底解决C盘空间不足问题。

weixin_28698059的博客 474

【例 4】战略游戏 (树形dp)

第二到第 N+1 行,每行描述每个节点信息,依次为该节点编号 i,数值 k,k 表示后面有 k 条边与节点 i 相连,接下来 k 个数,分别是每条边的所连节点编号 r1,r2,⋯,rk。他要在这棵树的节点上放置最少数目的士兵,使得这些士兵能够瞭望到所有的路。对于一个有 N 个节点的树,节点标号在 0 到 N−1 之间,且在输入文件中每条边仅出现一次。请你编一个程序,给定一棵树,帮 Bob 计算出他最少要放置的士兵数。注意:某个士兵在一个节点上时,与该节点相连的所有边都将能被瞭望到。

2301_76709357的博客 795

ARFoundation系列讲解 - 24 锚点

一、添加平面检测和平面可视化 请参考 ARFounnation快速入门-08平面检测 案例 二、添加射线检测 1.在AR Session Origin 组件上添加ARRaycastManager 脚本

a451319296的博客 4879

洛谷 B2016 浮点数向零舍入 题解

输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。

嵌入式开发工程师 678

Linux 服务器上部署 OpenClaw完整教程

2. 全局安装 OpenClaw 3. 初始化配置 配置模型提供商 方式一:使用配置命令(推荐) 方式二:直接编辑配置文件 在 部分添加: 配置多个模型提供商 如果你使用 Antigravity 本地代理,可以同时配置多个模型: 配置飞书集成 1. 创建飞书应用 访问 飞书开放平台 创建企业自建应用 记录 App ID 和 App Secret 2. 配置应用权限 在飞书开放平台,为应用添加以下权限:重要: 必须使用 长连接(WebSocket) 模式,不要使用 HTTP 回调!在飞书开放

Maynor的博客 5249

时间序列预测 | 决策树时间序列预测建模,单步、多步(Python)

时间序列预测 | 决策树时间序列预测建模,单步、多步(Python)

天天酷科研的博客 745

战略游戏 题解

战略游戏 题解 战略游戏 题目 BobBobBob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮BobBobBob计算出他需要放置最少的士兵。 输入 输入文件中数据表示一棵树,描述如下:   第一行 NNN,表示树中结点的数目。   第二行至第NNN+1行,每

Y的博客 638

API Streaming Failed 400 <400>InternalError.Algo.InvalidParameter input content must be a string解决方案

本文主要介绍了API Streaming Failed 400 <400> InternalError.Algo.InvalidParameter input content must be a string解决方案,希望能对使用vscode中cline的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

洛谷 P2016 战略游戏

洛谷 P2016 战略游戏 Description Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。 注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵...

weixin_30614109的博客 345

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

洛谷P2016战略游戏 题解

题目链接 分析: 树形DP 令fu,0f_{u,0}fu,0​表示点uuu不放士兵时uuu的子树(包括uuu)最少需要多少个士兵,fu,1f_{u,1}fu,1​表示点uuu放士兵时uuu的子树最少需要多少个士兵。 因为需要每条边的端点都有人,所以若点uuu不放,则uuu的每一个儿子都要放,否则uuu与儿子的连边的两端将都没有士兵,不符合题意。令sonuson_usonu​表示uuu的儿子的集合,...

一只蒟蒻的博客 386

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

洛谷P2016[SEERC 2000]战略游戏题解

我们用dp[u][0]表示u点不放士兵,子树覆盖所有边的最少士兵数;通过深度优先搜索遍历树,u不放则子节点必须放,u放则子节点可选放或不放取最小。最后取根节点两种情况的最小值,就是答案,代码里dfs递归处理父子节点,避免重复遍历即可。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能瞭望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被瞭望到。请你编一程序,给定一树,帮 Bob 计算出他需要放置最少的士兵。输出文件仅包含一个整数,为所求的最少的士兵数目。,表示树中结点的数目。

aierxiang的博客 623

洛谷 P2016 战略游戏 题解

题目:P2016 战略游戏 DP - 树形DP 题目大意 给出一棵树,如果在一个点 xxx 放了一个士兵,该士兵将会覆盖所有与点 xxx 直接相邻的边。求最少放多少个士兵,使得所有边都被覆盖 解题思路 这题其实跟P1352 没有上司的舞会非常相似,只不过改成了覆盖边 设 f[x][0]f[x][0]f[x][0] 表示以 xxx 为根的子树中,点 xxx 不放士兵所需要的最小士兵数量 f[x][1...

Brian_Pan_的博客 520

洛谷P2016 战略游戏

题目描述 Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。 注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵. 输入输出格式 输入格式: 第一行 N...

anonymity 519

【SSL】1230&【洛谷】P2016战略游戏

【SSL】1230&【洛谷】P2016战略游戏 Time Limit:1000MS Memory Limit:65536K Description Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。   请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。 Input 输入

weixin_46975572的博客 216

【洛谷 P2016&SSL 1230】战略游戏【树形DP】

战略游戏(difficult) Time Limit:1000MS Memory Limit:65536K Description Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。   请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。 Input 输入文件中数据表示一棵树,

绫 408

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

P2016 战略游戏 时间限制 1.00s 内存限制 125.00MB 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。 注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮Bob计算出...

C++的星空 422

洛谷P2016 战略游戏 - 树形DP

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

weixin_50836068的博客 4828

洛谷P2016 [SEERC 2000] 战略游戏题解

用树形 DP 枚举每个点选或不选,不选则子节点全选,选则子节点取最小,最后算出覆盖整棵树所有边的最少节点数。

suyefwhw的博客 36
上一篇: 【POJ_2342】Anniversary party
下一篇: 【SSL_1565】将功补过
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值