魔力屏障 (magic) 题解

这篇具有很好参考价值的文章主要介绍了魔力屏障 (magic) 题解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

魔力屏障 (magic)

【问题描述】

小 Z 生活在神奇的魔法大陆上。今天他的魔法老师给了它这样一个法阵作为它 的期末考试题目: 法阵由从左至右 n 道魔力屏障组成,每道屏障有一个临界值 a,如果它承受攻 击的魔力值 ≥ a,屏障将会破碎,它所承受的魔力攻击将在魔力值减半后(向下取 整)继续向右移动,否则该攻击会被该屏障完全拦截,停留在屏障前,屏障的临界 值不会减少。当两次攻击相遇时,两次攻击会叠加形成新的攻击,新的攻击的魔力 值为两次攻击魔力值之和,新的攻击会继续向右移动。小 Z 可以在法阵中任意一个 位置释放任意大小魔力值的攻击,攻击会向右移动直到遇到一个还未被摧毁的屏障 或离开法阵。 对于所有 1 ≤ i ≤ n ,小 Z 希望用最小的法力值使得第 1 ∼ i 道屏障全部破碎。

【输入格式】

第一个一个正整数 n 表示屏障的数量。 第二行 n 个正整数,第 i 个数为第 i 道屏障的临界值。

【输出格式】

一行 n 个数,第 i 个表示使第 1 ∼ i 道屏障全部破碎的最小法力值。两个数之 间用一个空格隔开。

【样例 1 输入】

5 10 3 3 8 4

【样例 1 输出】

10 10 11 17 17

【样例 1 解释】

对于 i = 1 ∼ 3,直接从左到右释放攻击使得屏障恰好破碎,例如 i = 3 时依次 在屏障 1 ∼ 3 上释放魔力值为 10, 0, 1 的攻击。对于 i = 4, 5 的方案,先在第 3 道屏 障上释放魔力为 2 的攻击,再在第 2 道屏障上释放魔力为 3 的攻击,此时屏障 2, 3 都已被破碎,屏障 4 上留有魔力值 1 的攻击。此时再在第 1 道屏障上释放魔力为 10 的攻击,在第 4 道屏障上释放魔力为 2 的攻击,第 4, 5 道屏障都被击碎。

【样例 2】

见选手目录下的 magic2.in 与 magic2.ans。 该样例与子任务 2 满足同样的约束条件。

【样例 3】

见选手目录下的 magic3.in 与 magic3.ans。 该样例与子任务 3 满足同样的约束条件。

【样例 4】

见选手目录下的 magic4.in 与 magic4.ans。 该样例与子任务 4 满足同样的约束条件。

【数据规模与约定】

本题开启子任务测试。对于所有数据满足 1 ≤ n ≤ 70, 1 ≤ ai ≤ 150。 子任务编号 分值 n ≤ ai ≤ 子任务依赖 1 30 10 5 无 2 20 20 10 1 3 20 70 2 无 4 30 70 150 2,3

总结:

最开始我想就是区间DP,状态也是 f[i][j][k] 表示打完 i-j 还剩 k 的能量,

但我最开始想法是用前部分的剩余能量的一部分攻击后半部分的能量,但这其实不好处理前半部分剩余能量的一部分

正解是用前半部分的剩余能量全部留下,和后半部分的一起留下成为一坨新的能量一起留给后面。

当然也有前半部分的剩余能量攻击后半部分的情况,但攻击只会攻击一个屏障,可以特殊判定一下 [i-j] 被分割为 [i-j-1] 和 [j] 两个部分,前部分剩余能量攻击 j ,仔细想想这样可以包含完全部情况文章来源地址https://www.toymoban.com/news/detail-467461.html

到了这里,关于魔力屏障 (magic) 题解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 题解 # 二维矩阵最大矩形问题#

    小明有一张N*M的方格纸,且部分小方格中涂了颜色,部分小方格还是空白。 给出N (2Ns30)和M(2sMs30)的值,及每个小方格的状态((被涂了颜色小方格用数字1表示,空白小方格用数字0表示); 请帮助小明找出最大的矩形空白区域,并输出该矩形空白区域由多少个小方格组成。 例如

    2024年02月07日
    浏览(49)
  • 深入浅出Android同步屏障机制

    原文链接 Android Sync Barrier机制 前段时间,项目上遇到了一个假死问题,随机出现,无固定复现规律,大量频繁随机操作后,便会出现假死,整个应用无法操作,不会响应事件,会发生各种奇怪的ANR,且trace不固定。非常之诡异。 经过大量的复现研究和分析, 以及大神的指点

    2024年02月09日
    浏览(41)
  • ChatGPT 探讨内存屏障的意内存

    轻松的氛围,跟 ChatGPT 从内存屏障问题一直扯到CAP原理 我: 2023/4/14 17:48:09 ChatGPT: 2023/4/14 17:48:41 我:2023/4/14 17:50:05 ChatGPT:2023/4/14 17:50:22 以上是通过 ChatGPT 学习内存屏障的过程。 也就说, asm volatile (“mfence” ::: “memory”); 这条内存读写屏障,之所以难以理解,是因为他把两

    2024年02月03日
    浏览(39)
  • 内存屏障 和 cache之间有什么关系?

    内存屏障(Memory Barrier)和缓存(Cache)之间有密切的关系。它们都是计算机系统中用于确保内存操作顺序和一致性的重要概念。 内存屏障是一种指令或操作,用于控制处理器或编译器的内存访问和重排行为,以确保在特定的位置或时机上,内存操作按照所需的顺序执行。内

    2024年02月13日
    浏览(43)
  • Android:同步屏障的简单理解和使用

    这里我们假设一个场景:我们向主线程发送了一个UI绘制操作Message,而此时消息队列中的消息非常多,那么这个Message的处理可能会得到延迟,绘制不及时造成界面卡顿。同步屏障机制的作用,是让这个绘制消息得以越过其他的消息,优先被执行。 Handler的message分为三种 同步

    2024年02月08日
    浏览(51)
  • 【模板】负环 问题题解(spfa和bellman解决)

    题目描述 给定一个 n 个点的有向图,请求出图中是否存在 从顶点 11 出发能到达 的负环。 负环的定义是:一条边权之和为负数的回路。 输入格式 本题单测试点有多组测试数据 。 输入的第一行是一个整数 T,表示测试数据的组数。对于每组数据的格式如下: 第一行有两

    2024年02月22日
    浏览(42)
  • C# 使用屏障来使多线程并发操作保持同步

    以下是微软官方对屏障类的介绍,System.Threading.Barrier 可用来作为实现并发同步操作的基本单元,让多个线程(参与者)分阶段并行处理目标算法。在达到代码中的屏障点之前,每个参与者将继续执行,屏障表示工作阶段的末尾;单个参与者到达屏障后将被阻止,直至所有参与者

    2024年01月24日
    浏览(45)
  • windows10上运行magic keyboard和magic mouse

    所有需要的软件和插件都可以在这里寻找到 链接:https://pan.baidu.com/s/1Y8vjRnznqKP7f8dFFrHoGw?pwd=vpsy 提取码:vpsy 你的windows电脑可能自带了蓝牙,那你直接连接键盘鼠标便可。 若你的windows电脑主板上没有蓝牙,你也可以上网买一个蓝牙接收器,他的价格往往在10RMB左右,效果都差

    2024年02月05日
    浏览(29)
  • 链表问题——长整数加法运算题解【双向链表】

    假设2个任意长度的整数x、y分别用链表A和B存储,现要求设计一个算法,实现x+y。计算结果存储在链表C中。 说明: 链表A、B、C可以是单向链表或双向链表,但由于A和B输出时需要从头至尾遍历,而做加法时需要从尾至头遍历,因此推荐使用双向链表存储。 链表的每个结点的

    2024年02月12日
    浏览(32)
  • 社交变革:探索Facebook的魔力

    社交媒体平台的崛起已经改变了我们与世界的交互方式,而Facebook作为其中的巨头,其影响力和魔力更是不可忽视。本文将深入探讨Facebook如何引领社交变革,并探索其背后的魔力所在。 连接世界的纽带 Facebook的独特之处在于它作为一个社交平台,连接了全球数十亿的用户。

    2024年03月21日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包