EDU 137 总结

news/2024/10/8 8:16:53/文章来源:https://www.cnblogs.com/SFsaltyfish/p/18450911

\[\large\text{Educationnal Codeforces Round 137} \]

E

有一个比较显然的 \(\mathcal{O}(h\times t_1\times t_2)\) 做法,即你定义一个状态表示当前敌方飞船的血量,飞船 \(1/2\) 分别的充能时间。

额这个状态及其的冗余啊。而且看了样例我才知道这个充能是可以两个飞船同时充能的。

定义 \(dp_i\) 表示进行完上次攻击之后,敌方飞船剩下的血量为 \(i\) 所需要的最少时间。

先看只需要蓄力一个的暴力转移,即:

\[\begin{aligned} dp_{i-(p_1-s)}=\min(dp_i+t_1)\\ dp_{i-(p_2-s)}=\min(dp_i+t_2)\\ \end{aligned} \]

考虑怎么对于同时蓄力的进行转移。观察到你可以把两个同时打出,看作打出一个的同时另外一个正好蓄好了力,正好可以打出去。

故你考虑枚举 \(p_i\) 打出去了 \(j\) 次,且第 \(j\)\(p_{3-i}\) 会同时打出,然后算出 \(p_{3-i}\) 在这段时间内会有单独打出去多少次,毕竟不能干等着对吧。

首先显然要满足 \(t_i \times j \ge t_{3-i}\) 不然不会同时打出一次。

然后你看在这期间 \(p_{3-i}\) 会被打出去多少次。稍微算一下应该比较容易,懒得打 \(\LaTeX\) 了。

时间复杂度 \(\mathcal{O}(h^2)\)

MD,读错题了,浪费了我一个小时。

\(\text{My Submission.}\)

F

首先你肯定是想到统计对于一个权值有多少种方案会出现在最终集合里面,然后加起来就可以了。

首先有一个 \(\mathcal{O}(n^2)\) 的算法是,你考虑枚举权值 \(x\in [1,3\times 10^5]\),然后定义 \(dp_{i,0/1}\) 表示进行完前面 \(i\) 次操作,他是否在集合里面的方案数,最终答案就是对于每个权值所求得的 \(dp_{n,1}\) 之和。

稍微写一下这个柿子:

\[l_i\le x \le r_i\\ dp_{i,0}=dp_{i-1,0}+dp_{i-1,1}\\ dp_{i,1}=dp_{i-1,0}\times 2+dp_{i-1,1}\times 2\\ \text{Other Wise}\\ dp_{i,0}=dp_{i-1,0}\times 3+dp_{i-1,1}\\ dp_{i,1}=dp_{i-1,1}\times 2\\ \]

观察到上述转移非常像矩阵的形式:

\[l_i\le x\le r_i\\ \begin{pmatrix} dp_{i,0}& dp_{i,1}\\ \end{pmatrix}= \begin{pmatrix} dp_{i-1,0}& dp_{i-1,1}\\ \end{pmatrix}\times \begin{pmatrix} 1&2\\ 1&2\\ \end{pmatrix} \\ \text{Otherwise}\\ \begin{pmatrix} dp_{i,0}& dp_{i,1}\\ \end{pmatrix}= \begin{pmatrix} dp_{i-1,0}& dp_{i-1,1}\\ \end{pmatrix}\times \begin{pmatrix} 3&0\\ 1&2\\ \end{pmatrix} \]

你考虑对于每个 \(i\)\(1\to n\) 枚举,对于所有的 \(x\) 同时执行以上过程,即开一颗线段树,每个叶子节点储存一下 \(dp_{x,i,0},dp_{x,i,1}\) 他们两个构成的矩阵,然后每次修改就是区间 \([1,l_i-1],[l_i,r_i],[r_i+1,3\times 10^5]\) 分别乘上对应的转移矩阵即可。

貌似题解区没有这么做的(?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809787.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware Aria Automation 8.18 发布,新增功能概览

VMware Aria Automation 8.18 发布,新增功能概览VMware Aria Automation 8.18 - 多云基础架构自动化平台 Multi-Cloud Infrastructure Automation Platform 请访问原文链接:https://sysin.org/blog/vmware-aria-automation/,查看最新版。原创作品,转载请保留出处。 作者主页…

VMware Aria Automation Orchestrator 8.18 发布,新增功能概览

VMware Aria Automation Orchestrator 8.18 发布,新增功能概览VMware Aria Automation Orchestrator 8.18 - 现代工作流程自动化平台 请访问原文链接:https://sysin.org/blog/vmware-aria-automation-orchestrator/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin…

C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿,推荐或自荐优质文章/项目/学习资源等。…

从SQL Server过渡到PostgreSQL:理解模式的差异

从SQL Server过渡到PostgreSQL:理解模式的差异 前言 随着越来越多的企业转向开源技术,商业数据库管理员和开发者也逐渐面临向PostgreSQL迁移的需求。 虽然SQL Server和PostgreSQL共享许多数据库管理系统(RDBMS)的基本概念,但它们在处理某些结构上的差异可能会让人感到困惑…

Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round)

致敬传奇调题王 HDK A.Meaning Mean给定一个序列 \(a\),每次选择 \(i,j\ (i\neq j)\),使得其缩成一个值为 \(\lfloor\frac{a_i+a_j}{2}\rfloor\) 的数,直至剩余一个数,求最终答案的最大值一开始想的是最小化 \(\lfloor\frac{a_i+a_j}{2}\rfloor\) 的损失,后来发现这点损失…

读数据工程之道:设计和构建健壮的数据系统02数据工程师

数据工程师1. 背景和技能 1.1. 数据工程是一个快速发展的领域,关于如何成为一名数据工程师仍然存在很多问题 1.2. 进入数据工程领域的人在教育、职业和技能方面有着不同的背景1.2.1. 每个进入该领域的人都应该投入大量的时间进行自学1.3. 从一个邻近的领域转到数据工程是最容易…

销售秘籍:故事+观点+结论

在销售的浩瀚宇宙中,隐藏着一个不朽的秘诀——利用人类共有的“错失恐惧”,激发客户内心的渴望与行动。正如村上春树所言,每个故事都深深植根于灵魂,而大仲马则揭示,灵魂之眼所见,比肉眼更为长久铭记。 错失恐惧:销售心理学的隐形推手 作为社会性生物,我们天生害怕错过…

面相快速入门教程5水性

5 水性 在本章中,我将介绍水元素的基本知识,并让你学会如何识别水元素。首先,我们来快速参考一下水元素的特征:能量:黑暗、静止、漂浮、安静、夜晚、冬天、死亡、出生前 特质:睿智、勇敢、恐惧、顽强、果断、任性、独立、坚强、忧郁、固执、神秘、反思、多梦、艺术、神秘…

修改PE入口点方式注入自己编写的DLL——《英雄无敌》1代小回城术修改成大回城术

《英雄无敌》每代都有回城术,而第一代的回城术则是所谓的“小回城术”,就是到达的城堡不能选择。到了《英雄无敌》2代和3代,都有大小回城术了,而大回城术可以使英雄回到己方的任意一座没有自己的英雄所在的城堡,有了这样的魔法,使得英雄能兼顾整个地图,是每个玩家都是首…

Architecture 1001: x86-64 Assembly 汇编

编程语言心法参考:http://www.yinwang.org/blog-cn/2017/07/06/master-pl 英语阅读速成:http://www.yinwang.org/blog-cn/2018/11/23/grammar 前置条件 必须熟悉 C 编程。 https://www.learn-c.org/ https://www.edx.org/certificates/professional-certificate/dartmouth-im…

《机器学习》 学习记录 - 第二章

好多看不懂的高数内容。。。 第2章 模型评估与选择 2.1 经验误差与过拟合错误率(error rate):分类错误的样本数占样本总数的比例。 若在m个样本中有a个样本分类错误,则错误率\(E=a/m\); 而常说的 精度 则等于\(1-a/m\),即 “精度=1-错误率” ,常写为百分比形式。训练误差(…

git push代码失败,鉴权失败

github 无法push 代码 1、确保设置了用户名和邮箱 git config --global user.name "mars" git config --global user.email "mars3603@163.com" 2、修改 .git/config 中的URL,将https的方式修改为 ssh https方式:url = https://github.com/Mars3603/grpc…