DTOJ 4780. 病毒研究

2024-03-08 23:18
文章标签 研究 病毒 dtoj 4780

本文主要是介绍DTOJ 4780. 病毒研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

病毒科学家陈博士正在带领着她的团队在研究病毒,她要研究如何降低病毒的活性。病毒的活性可以用一个整数来表示,但她不知道具体的活性是多少。

她可以执行 m + 1 m+1 m+1 种操作,对于前 m m m 种操作,第 i i i 种操作为花费 v i v_i vi 的代价使得病毒 的活性减少 w i w_i wi;第 m + 1 m+1 m+1 种操作为查看当前病毒所处的状态,不需要花费任何代价。

病毒一共有 n n n 种状态。有 n + 1 n+1 n+1 个递增的数 a 0 , a 1 , a 2 , . . . , a n a_0,a_1,a_2,...,a_n a0,a1,a2,...,an,其中 a 0 = 0 a_0=0 a0=0;若病毒的活性 x x x 满足 a i − 1 < x ≤ a i a_{i-1}<x\le a_i ai1<xai,那么这个病毒就处于状态 i i i。同时,保证病毒的活 性不会大于 a n a_n an

她可以使用每种操作任意多次,但是她不希望病毒完全丧失活性。但是如果在使用了一个操作后,病毒的活性 ≤ 0 \le 0 0 了,那研究就失败了。而病毒的活性太高时也不适合研究,只有病毒处于状态 1 1 1 时才最适合研究。

现在,她只知道病毒的活性是 [ 1 , a n ] [1,a_n] [1,an] 中的一个等概率随机的整数。她想知道,在保证病毒不会完全丧失活性的情况下,她使病毒变为状态 1 1 1 的过程中,花费代价的期望最少是多少。

可以发现答案乘 a n a_n an 一定是个整数,输出答案乘 a n a_n an 的值即可。

如果不能保证病毒不会完全丧失活性,输出 − 1 -1 1

子任务编号 a n ≤ a_n \le an分值
1 1 1 10 10 10 17 17 17
2 2 2 50 50 50 33 33 33
3 3 3 200 200 200 12 12 12
4 4 4 2000 2000 2000 38 38 38

对于所有数据,满足 1 ≤ a 1 < a 2 < . . . < a n ≤ 2000 , 1 ≤ T ≤ 10 , 1 ≤ v i ≤ 1 0 6 1\le a_1 < a_2 < ... < a_n \le 2000 , 1\le T \le 10 , 1 \le v_i \le 10^6 1a1<a2<...<an2000,1T10,1vi106

题解

首先要对题意有正确的把握:由于只能知道病毒所处的状态而不是具体的活性,所以对于同一状态的所有病毒第一步所采取的状态是相同的,而这一步之后它们会被向左平移并可能被分割为一些不同状态的连续区间。于是考虑区间DP: f [ l ] [ r ] f[l][r] f[l][r]为把 [ l , r ] [l,r] [l,r]解决的最小代价和,枚举第一步即可转移,效率 O ( n 2 m ) O(n^2m) O(n2m)

由于转移时不可避免枚举,不太可优化,考虑优化状态。注意到转移到的区间似乎都是每个状态的前缀或后缀,如果只有这些状态就是 O ( n ) O(n) O(n)的了。但可能原来的区间平移后不被分割就gg了,于是考虑强制让它经过若干次平移后被分割,那就只能枚举平移的长度,对长度做一个完全背包即可。

这篇关于DTOJ 4780. 病毒研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788745

相关文章

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

Win8下如何快速查找和删除电脑中的病毒

Win8系统如何查找和删除病毒?检查你的电脑是否存在病毒的一种快速方法是使用 Windows Defender. 此恶意软件防护随 Windows 提供,可帮助识别和删除病毒、间谍软件和其他恶意软件。   注意:如果你使用的是 Windows RT,则 Windows Defender 会始终启用,并且不能关闭。   如果你使用的是 Windows 8,则可以根据自己的喜好运行由其他

代码随想录训练营day37|52. 携带研究材料,518.零钱兑换II,377. 组合总和 Ⅳ,70. 爬楼梯

52. 携带研究材料 这是一个完全背包问题,就是每个物品可以无限放。 在一维滚动数组的时候规定了遍历顺序是要从后往前的,就是因为不能多次放物体。 所以这里能多次放物体只需要把遍历顺序改改就好了 # include<iostream># include<vector>using namespace std;int main(){int n,m;cin>>n>>m;std::vector<i

vue原理分析(六)--研究new Vue()

今天我们来分析使用new Vue() 之前研究时,只是说是在创建一个实例。并没有深入进行研究 在vue的源码中找下Vue的构造函数 function Vue(options) {if (!(this instanceof Vue)) {warn$2('Vue is a constructor and should be called with the `new` keyword');}thi

《中国全屋智能行业发展现状与投资前景研究分析报告》

报告导读:本报告从国际全屋智能发展、国内全屋智能政策环境及发展、研发动态、供需情况、重点生产企业、存在的问题及对策等多方面多角度阐述了全屋智能市场的发展,并在此基础上对全屋智能的发展前景做出了科学的预测,最后对全屋智能投资潜力进行了分析。  订购链接:https://www.yxresearch.com/ 第一章全屋智能行业概念界定及发展环境剖析 第一节全屋智能行业相关概念界定 一、智能家