Date:January 29th Title: 集训Day2-小信小友打怪兽 题解

2023-10-26

时间:1s 空间:256M

题目描述:

小信与小友一起组队打怪兽。有一个长度为n的怪兽序列,一些怪兽会对小信造成伤害,另一些不会;小友是大佬,所有怪兽都伤害不了他。小信与小友轮流打怪兽,小信先手,小友后手,他们需要按照顺序打怪兽。由于技能有冷却时间,每次每个人最多打两只怪兽,至少打一只怪兽。问小信最少会受到几只怪兽的伤害。

例如有8只怪物"1 0 1 1 0 1 1 1",1表示这只怪兽会对小信造成伤害,0表示不会对小信造成伤害。

第一回合,小信打第1只与第2只怪兽,受到第1只怪兽的伤害;小友打第3只与第4只。

第二回合,小信打第5只怪兽;小友打第6只与第7只。

第三回合,小信打第8只怪兽,并受到伤害。

游戏结束,小信总共受到了2只怪兽的伤害。

输入格式:

第一行包含一个正整数 n,表示序列长度。

第二行包含长度为 n 的01序列。

输出格式:

输出一个整数表示答案。

样例输入:

8

1 0 1 1 0 1 1 1

样例输出:

2

约定:

对于30的数据,n 不超过 10

对于50的数据,n 不超过 500

对于100的数据,n 不超过 106

题意:

小信和小友打怪兽,轮流打一只或两只,部分怪兽会对小·信造成伤害,问能让小信受伤最少的方案.

分析:

这题是一道动态规划,首先读入你,输入每个怪兽是否有伤害,然后然后用dfs查出结果,终止条件是打怪的次数大于怪兽的数量了,然后进行选择。

Code:

#include <bits/stdc++.h>
using namespace std;
int a,n[1000005],minn=INT_MAX;
int t[1000005][2];
int dfs(int last,int player)
{
    if(last>a)return 0;;
    int ret=INT_MAX;
    if(t[last][player]<1000005)return t[last][player];
    if(player==1)
    {
        ret=min(ret,dfs(last+1,0));
        if(last!=a)ret=min(ret,dfs(last+2,0));
    }
    else{
        ret=min(ret,dfs(last+1,1)+n[last]);
        if(last!=a)
            ret=min(ret,dfs(last+2,1)+n[last]+n[last+1]);
    }
    return t[last][player]=ret;
}
int main()
{
    cin>>a;
    for(int i=1;i<=a;i++)
    {
        cin>>n[i];
    }
    for(int i=0;i<1000005;i++)
    {
        for(int j=0;j<2;j++)
        {
            t[i][j]=INT_MAX;
        }
    }
    cout<<dfs(1,0);
}

The End

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Date:January 29th Title: 集训Day2-小信小友打怪兽 题解 的相关文章

  • WPF 中的屏幕分辨率问题?

    我将在 WPF 中使用以下代码检测分辨率 double height System Windows SystemParameters PrimaryScreenHeight double width System Windows Syste
  • 具有不同大小结构的结构数组的 malloc()

    如果每个结构都包含一个大小不同的字符串数组 那么如何正确地 malloc 一个结构数组 因此每个结构可能有不同的大小 并且不可能 realloc 结构体数量 sizeof 结构体名称 after malloc 初始大小 sizeof 结构名
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • 在 C# 中生成 HMAC-SHA1

    我正在尝试使用 C 来使用 REST API API 创建者提供了以下用于 hmac 创建的伪代码 var key1 sha1 body var key2 key1 SECRET KEY var key3 sha1 key2 var sig
  • 在 C++ 中将成对向量转换为两个独立向量的最快方法

    假设我有一个vector of pair
  • 如何尝试/捕获所有异常

    我正在完成由其他人启动的 UWP 应用程序 该应用程序经常崩溃 我总是陷入困境应用程序 at if global System Diagnostics Debugger IsAttached global System Diagnostic
  • C# 正则表达式用于查找 中具有特定结尾的链接

    我需要一个正则表达式模式来查找字符串 带有 HTML 代码 中的链接 以获取文件结尾如 gif 或 png 的链接 示例字符串 a href site com folder picture png target blank picture
  • 将字符串转换为正确的 URI 格式?

    有没有简单的方法可以将电子邮件地址字符串转换为正确的 URI 格式 Input http mywebsite com validate email 3DE4ED727750215D957F8A1E4B117C38E7250C33 email
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • C++ 插件的“最适合”动态类型匹配

    我有一个几乎所有东西都是插件的架构 该架构以图形用户界面为基础 其中每个插件都由一个 表面 即用户可以通过其与插件交互的 UI 控件 表示 这些表面也是插件 每当添加新插件时 瘦主机都会自动确定哪个可用表面与其最匹配的 UI 如何在 C 中
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互
  • C# 中的常量和只读? [复制]

    这个问题在这里已经有答案了 可能的重复 const 和 readonly 之间有什么区别 https stackoverflow com questions 55984 what is the difference between cons
  • 如何随着分辨率的变化自动调整大小和调整表单控件

    我注意到某些应用程序会更改控件的位置以尽可能适应当前的分辨率 例如 如果窗口最大化 则控件的设置方式应使整个 GUI 看起来平衡 是否可以使用 C 在 Visual studio 2010 中制作或实现此功能 Use Dock http m
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • WPF。如何从另一个窗口隐藏/显示主窗口

    我有两个窗口 MainWindow 和 Login 显示登录的按钮位于主窗口 this Hide Login li new Login li Show 登录窗口上有一个检查密码的按钮 如果密码正确 我如何显示主窗口 将参数传递给 MainW
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 如何引用解决方案之外的项目?

    我有一个 Visual Studio C 解决方案 其中包含一些项目 其中一个项目需要引用另一个不属于解决方案的项目 一开始我引用了dll

随机推荐

  • WebSocket的基本使用

    目录 为何使用websocket 1 后端搭建 2 搭建webSocket前后分离 1 配置跨域过滤器与初始化websocket 2 定义websocket服务 3 定义控制器进行测试webSocket向前端发送消息 2 前端准备 3 进行
  • 如何从gitee上拉项目?

    目录 第一步 下载git软件 第二步 一直下一步 傻瓜式安装 第三部 使用 新建一个文件夹 2 右击 打开命令窗口 3 复制项目下载url 4 命令窗口输入这样一串命令 第一步 下载git软件 CNPM Binaries Mirror np
  • spring-boot是否还和spring mvc一样存在父子容器

    文章目录 一 spring boot在自动集成了spring springmvc后是否在有父子容器之分 1 看下spring boot run方法 2 为什么spring mvc弄了一个父子容器 二 spring mvc中父子容器初始化过程
  • @Autowired 和 @Resource 的区别

    Autowired 和 Resource 的区别 区别 Autowired Resource 区别 区别1 Autowired 是spring提供的注解 Resource 是JDK提供的注解 区别2 Autowired 默认的注入方式是By
  • 第三十章、containers容器类部件QMdiArea多文档界面部件功能介绍及开发应用

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 一 引言 老猿在前期学习PyQt相关知识时 对每个组件的属性及方法都研究得很透彻 并将学习的感悟都写成了博文
  • linux中jdk安装/java环境安装

    第一步首先下载java jdk jdk 8u144 linux x64链接 https pan baidu com s 1uvSB 7JP037AdZJPDdGF6A 提取码 mdat 然后使用工具将文件传输到linux上 然后将tar g
  • 在树莓派中安装ROS系统(Kinetic)

    在树莓派中安装ROS系统 重新梳理了一下树莓派的安装流程 现在我们来开始吧 打开官网教程 http wiki ros org kinetic step1 安装源 中国 sudo sh c etc lsb release echo deb h
  • 物联网+区块链溯源方案

    物联网硬件 蓝牙 wifi 加区块链的方式可有效对现实世界中的实例进行链上映射 本文介绍一种基于硬件的轮胎区块链防伪溯源以及渠道管控的方案思路 更多区块链技术与应用分类 区块链应用 区块链开发 以太坊 Fabric BCOS 密码技术 共识
  • 服务器搭建系列之7:k8s安装postgresql数据库,2022最新版本

    Dockerfile FROM postgres EXPOSE 5432 deploy yaml 命名空间 apiVersion v1 kind Namespace metadata name fandai apiVersion apps
  • Maven安装与配置,Eclipse配置Maven【图文并茂的保姆级教程】

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于Maven的相关操作吧 目录 Welcome Huihui s Code World 一 Maven是什么 二 Maven的下载 辉辉小贴士 maven中各个
  • Svm实现多分类

    机器学习 Svm实现多分类详解 Svm实现多类分类原理 代码实现 训练的图片 Svm实现多类分类原理 1 支持向量机分类算法最初只用于解决二分类问题 缺乏处理多分类问题的能力 后来随着需求的变化 需要svm处理多分类分为 目前构造多分类支持
  • 各种音视频编解码学习详解(11)--Flash Video系列

    用于在 Flash 中压缩视频 FLV流媒体格式是一种新的视频格式 它的出现有效地解决了视频文件导入Flash后 使导出的SWF文件体积庞大 不能在网络上有效使用等 缺点 一般FLV文件包在SWF PLAYER 的壳里 并且FLV可以很好的
  • Linux Memcached 安装

    1 Linux系统安装memcached 首先要先安装libevent库 memcache依赖于libevent 必须先安装 自动下载安装方式 也可使用源码安装方式 yum install libevent devel yum instal
  • 陪我到可可西里看一看海,不要未来,只要你来。——大冰 《陪我到可可西里去看海》

    陪我到可可西里看一看海 不要未来 只要你来 大冰 陪我到可可西里去看海
  • 斐波那契查找详细注解版

    对于斐波那契数列 1 1 2 3 5 8 13 21 34 55 89 也可以从0开始 前后两个数字的比值随着数列的增加 越来越接近黄金比值0 618 比如这里的89 把它想象成整个有序表的元素个数 而89是由前面的两个斐波那契数34和55
  • Python中RotatingFileHandler、TimedRotatingFileHandler函数用法

    欢迎来到我的博客 作者 秋无之地 简介 CSDN爬虫 后端 大数据领域创作者 目前从事python爬虫 后端和大数据等相关工作 主要擅长领域有 爬虫 后端 大数据开发 数据分析等 欢迎小伙伴们点赞 收藏 留言 背景 在python开发过程中
  • Linux如何卸载软件

    Linux系统可以通过终端 Terminal 或图形界面 GUI 来卸载软件 终端方式可以使用apt get Ubuntu 或yum CentOS 命令来实现 而图形界面方式可以使用系统自带的软件管理器来实现 比如Ubuntu的Ubuntu
  • libev学习系列之二:libev下载

    libev学习系列之二 libev下载 版本说明 版本 作者 日期 备注 0 1 ZY 2019 5 31 初稿 目录 文章目录 libev学习系列之二 libev下载 版本说明 目录 官网 GitHub 我的某度网盘 官网 可以去官网下载
  • 【python练习题 03】高矮个子排队

    题目 现在有一队小朋友 他们高矮不同 我们以正整数数组表示这一队小朋友的身高 如数组 5 3 1 2 3 我们现在希望小朋友排队 以 高 矮 高 矮 顺序排列 每一个 高 位置的小朋友要比相邻的位置高或者相等 每一个 矮 位置的小朋友要比相
  • Date:January 29th Title: 集训Day2-小信小友打怪兽 题解

    时间 1s 空间 256M 题目描述 小信与小友一起组队打怪兽 有一个长度为n的怪兽序列 一些怪兽会对小信造成伤害 另一些不会 小友是大佬 所有怪兽都伤害不了他 小信与小友轮流打怪兽 小信先手 小友后手 他们需要按照顺序打怪兽 由于技能有冷