魔力屏障 (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 ,仔细想想这样可以包含完全部情况
魔力屏障 (magic) 题解的更多相关文章
- NOIP模拟测试30「return·one·magic」
magic 题解 首先原式指数肯定会爆$long$ $long$ 首先根据欧拉定理我们可以将原式换成$N^{\sum\limits_{i=1}^{i<=N} [gcd(i,N)==1] C_{G ...
- CDQ分治题目小结
CDQ分治属于比较特殊的一类分治,许多问题转化为这类分治的时候,时空方面都会有很大节省,而且写起来没有这么麻烦. 这类分治的特殊性在于分治的左右两部分的合并,作用两部分在合并的时候作用是不同的,比如, ...
- CQD(陈丹琦)分治 & 整体二分——专题小结
整体二分和CDQ分治 有一些问题很多时间都坑在斜率和凸壳上了么--感觉斜率和凸壳各种搞不懂-- 整体二分 整体二分的资料好像不是很多,我在网上找到了一篇不错的资料: 整体二分是个很神的东西 ...
- webpack常用配置总结
1. webpack简介 webpack 是一个模块打包工具.它使得模块相互依赖并且可构建等价于这些模块的静态资源.相比于已经存在的模块打包器(module bundler),webpack的开发动机 ...
- 银行爱“IOE”爱得有多深
本文由阿尔法工场欧阳长征推荐 导读:如果银行是一家海鲜酒楼,把IBM换掉相当于大搞一次装修,把Oracle换掉相当于把厨子和菜谱全部换掉,把EMC换掉相当于把放食材工具的储物间换个地方.难度在于,这海 ...
- 巨杉数据库入选Gartner数据库报告,中国首家入选厂商
SequoiaDB巨杉数据库入选Gartner数据库报告,成为国内首批入选Gartner报告的数据库厂商. “SequoiaDB, 总部位于中国广州,是一款分布式.多模型(Multimodel).高可 ...
- Liferay
Liferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal.Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织.于2004年建立Liferay公 ...
- webpack 功能大全 【环境配置】
1. webpack简介 webpack 是一个模块打包工具.它使得模块相互依赖并且可构建等价于这些模块的静态资源.相比于已经存在的模块打包器(module bundler),webpack的开发动机 ...
- IPython基础使用_Round2
目录 目录 前言 软件环境 Ipython的字符串处理 Ipython的魔力函数Magic lsmagic Output所有魔力函数 查看Magic的源码 env 显示系统环境变量 history 查 ...
- 题解-Magic Ship
Magic Ship 你在 \((x_1,y_1)\),要到点 \((x_2,y_2)\).风向周期为 \(n\),一个字符串 \(s\{n\}\) 表示风向(每轮上下左右),每轮你都会被风向吹走一格 ...
随机推荐
- Net DB Web多级缓存的实现
1.客户端缓存(浏览器缓存) HTTP有一套控制缓存的协议-RFC7234,其中最重要的就是cache-control这个相应报文头,服务器返回时,如果Response带上 cache-control ...
- 001-ksum 求符合条件的 k 个数 1. Two Sum/15. 3Sum/18. 4Sum/
推荐阅读 000-从零开始的数据结构与算法 001-01-ksum 求符合条件的 k 个数 1. Two Sum/15. 3Sum/18. 4Sum/ 002-两数相加 add two numbers ...
- TCP三次握手一二三问
下面整理下TCP握手和挥手的几个问题,参考资料小林图解计算机网络 1.什么是三次握手? Client端向Server端发送SYN为1的报文段,携带一个初始序列号x,client端进入SYN_SENT状 ...
- C#/VB.NET:如何将PDF转为PDF/A
PDF/A是一种ISO标准的PDF文件格式版本,是为长期保存文件而设计的.它提供了一种工具,使电子文件在长时间之后依然以一种保留其外观的方式重现,而不管该文件是用什么工具和系统创建.储存或制作的.这种 ...
- dark room - 2020 年苹果设计奖得主,一个足够强大的照片视频编辑器
2020年苹果设计奖得主 2015年App Store最佳应用 Darkroom 是一个高级照片和视频编辑器.它对业余摄影师来说很容易操作,但对专业摄影师来说足够强大. 下载 ➤ Darkroom 下 ...
- 超全 泛微 E9 Ecology 9开发资料大全 开源资源下载 泛微E9二次开发 泛微开发实战经验 泛微开发实战例子 泛微二次开发项目例子 泛微二次开发Demo 泛微二次开发完整例子 泛微二次开发入门
由于工作需要,E9在泛微一推出来,以前所在的企业就第一时间上线了,经过四年多的运行,功能强大再加上在上面开发非常多的业务,一般的企业员工只需要打开泛微就可以处理完平时信息化的业务.后来又去外包公司专业 ...
- 面对AI的兴起,从人类发展到个人发展,普通人应当如何抉择?
这一周被各种 AI 卷的不行,从 ChatGPT 4.0 上线到百度文心一言发布会,再到微软的 Microsoft 365 Copilot. 网上有很多人.公众号吐嘈百度,而晓衡接触到的圈子还有一些不 ...
- 【Vue】二
一个第三方js处理类库 BootCDN Vue过滤器 Date.now() 获取时间戳 Date.now() 1652411231222 计算属性实现 <body> <div id= ...
- STM32启动分析之main函数是怎样跑起来的
1.MDK目标文件 1)MDK中C程序编译后的结果,即可执行文件数据分类: RAM ZI bss 存储未初始化的或初始化为0的全局变量和静态变量 heap 堆,系统malloc和free操作的内存 s ...
- 参与开源之夏 x OpenTiny 跨端跨框架 UI 组件库贡献,可以赢取奖金🏆!这份《OpenTiny 开源贡献指南》请收好🎁!
大家好,我是 Kagol. 近期有几位朋友在 OpenTiny 技术交流群里询问我们在开源之夏(OSPP)的项目,希望能提前做一些准备工作. 这里给大家简单介绍下开源之夏. 开源之夏是由中科院软件所& ...