C:Jump and Treasure(单调队列优化DP+调和级数)

news2024/12/26 10:52:29

题意:给你一个0到n的柱子,一开始在0,需要跳到大于n的地方,每个柱子上有个得分,

且限制了最大跳跃步数;

思路:一般很容易想到一个 n*p 时间复杂度的DP ,f[i] 表示以 i 为结尾的最大得分然后枚举前p-1个位置,但是时间肯定不允许,可以想到这类题典型就是单调队列优化的;

然后每次询问又给了限制,这里就用到了调和级数,也就是 n/1+n/2+n/3+n/4+...+n/n 大概在nlogn的级别,而单调队列优化DP 又是O(N)的,这样就可以看似暴力,其实稳过的a掉了

具体细节看代码

int n, p, Q;
int a[N], q[N], f[N];
int hh, tt;
void solve()
{
    cin >> n >> Q >> p;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    while (Q--)
    {
        int x;
        cin >> x;
        if (x > p)//非法情况
            cout << "Noob" << endl;
        else
        {
            vector<int> b;
            for (int i = 0; i <= n; i += x)
                b.pb(i);
            b.pb(n + 1);//push一个n+1,就不用最后枚举那个范围了
            f[0] = 0, q[0] = 0;
            hh = 0, tt = 0;
            for (auto i : b)
            {
                while (hh <= tt && i - q[hh] > p)//由于每次移动并不一定是1,就写while而不是if
                    hh++;
                f[i] = f[q[hh]] + a[i];
                while (hh <= tt && f[q[tt]] < f[i])
                    tt--;
                q[++tt] = i;
            }
            cout << f[n + 1] << endl;
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【4月17日】阿里云 腾讯云 京东云 2-64G服务器选择对比 配置、价格全盘点 搭建博客、网站、个人开发建议收藏

更新日期&#xff1a;4月17日&#xff08;阿里云继续保持1.5折&#xff0c;京东云采购季持续进行&#xff09; 本文纯原创&#xff0c;侵权必究 《最新对比表》已更新在文章头部—腾讯云文档&#xff0c;文章具有时效性&#xff0c;请以腾讯文档为准&#xff01; 【腾讯文档实…

socket编程——tcp

在我这篇博客&#xff1a;网络——socket编程中介绍了关于socket编程的一些必要的知识&#xff0c;以及介绍了使用套接字在udp协议下如何通信&#xff0c;这篇博客中&#xff0c;我将会介绍如何使用套接字以及tcp协议进行网络通信。 1. 前置准备 在进行编写代码之前&#xff…

最新版idea 合并分支方法

前言 以下是最新版的idea2024&#xff0c;如果有人找不到按键可能是因为版本不同。 操作步骤 看右小角我的分支是submit&#xff0c;现在我要将test合并到我的submit分支上 找到test分支&#xff0c;选择update&#xff0c;这一步会拉取相应分支内容等同于pull 选择merge 选…

能源成果3D网络三维展厅越发主流化

在这个数字化飞速发展的时代&#xff0c;我们为您带来了全新的展览形式——线上3D虚拟展厅。借助VR虚拟现实制作和web3d开发技术&#xff0c;我们能够将物品、图片、视频和图文信息等完美融合&#xff0c;通过计算机技术和3D建模&#xff0c;为您呈现一个逼真、生动的数字化展览…

【保姆级】frp内网穿透

场景&#xff1a;本地调试微信生态的回调时&#xff0c;如果全用线上调试&#xff0c;那就太恶心人了&#xff0c;所以我们今天简单说下frp内网穿透 一、安装和配置 frp下载地址&#xff1a; https://github.com/fatedier/frp/releases 简单说一下&#xff1a; 服务器用的是f…

包装类的认识

前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&#x1…

储能的全生命周期成本即平准化度电成本的计算方法及python实践

1. 平准化度电成本&#xff08;LCOE&#xff09;是一种衡量电力项目经济性的指标 LCOE&#xff08;Levelized Cost of Energy,&#xff09;的概念最早由美国国家可再生能源实验室&#xff08;NREL&#xff09;在1995年提出&#xff0c;它是通过将一个项目生命周期内的所有成本…

什么牌子的短袖t恤质量好?2024年高品质短袖推荐!

什么牌子的短袖质量好&#xff1f;最近大部分地区的天气都比较热&#xff0c;大家对短袖的关注度日益提升。然而作为一名十年以上的经验的服装测评师&#xff0c;我必须强调市面上有许多所谓网红品牌&#xff0c;虽然广告营销做得沸沸扬扬&#xff0c;但对短袖的做工、细节方面…

ELK日志分析系统(上)

目录 引言 一、ELK日志分析系统简介 1.1 日志服务器 1.2 ELK日志分析系统的组成 1.3 日志处理步骤 二、Elasticsearch介绍 2.1 概述 2.2 核心概念 三、Logstash介绍 3.1 概述 3.2 主要组件 四、Kibana介绍 4.1 概述 4.2 主要功能 五、ELK的工作原理 六、部署ELK…

二维码电子画册制作教程,教你如何做出高端作品!

当今社会&#xff0c;二维码已经成为了信息传递的重要方式之一&#xff0c;其在电子商务、广告营销、活动推广等领域广泛应用。而如何将二维码巧妙地融入电子画册中&#xff0c;制作出高端、具有吸引力的作品&#xff0c;成为了许多设计师和营销人员关注的焦点 但是很多人却不知…

HTTP协议详解:从URL到HTTP报文的全貌

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统 前言 随着互联网的飞速发展&#xff0c;HTTP协议作为支撑网络应用的核心基石&#xff0c;扮演着举足轻重的角色。无论是日常的…

LDR6028,充电听歌两不误!

当前市场上的手机普遍取消了3.5mm耳机接口&#xff0c;仅保留Type-C接口。然而&#xff0c;对于音质和零延迟有追求的用户&#xff0c;仍倾向于选择3.5mm有线耳机&#xff0c;特别是在玩游戏时&#xff0c;音画同步至关重要。因此&#xff0c;Type-C转3.5mm接口线应运而生&…

Oracle11.2.0.1,(CVE-2012-1675)漏洞解决方案

1.进入容器停止监听 docker exec -it -u 0 oracle11g bash su - oracle lsnrctl stop listener2.找到监听配置文件位置&#xff0c;修改监听文件 echo $ORACLE_HOMEvi network/admin/listener.ora #在文件底部添加 SECURE_REGISTER_LISTENER (IPC) #启动监听 lsnrctl start …

《量化投资以Python为工具》目录

《量化投资以Python为工具》 获取链接&#xff1a;《量化投资以Python为工具》 更多技术书籍&#xff1a;技术书籍分享&#xff0c;前端、后端、大数据、AI、人工智能... ​ ​ ​ ​

【实战】Dubbo应用可观测性升级指南与踩坑记录

应用从dubbo-3.1.*升级到dubbo-*:3.2.*最新稳定版本&#xff0c;提升dubbo应用的可观测性和度量数据准确性。 1. dubbo版本发布说明(可不关注) dubbo版本发布 https://github.com/apache/dubbo/releases 【升级兼容性】3.1 升级到 3.2 2. 应用修改点 注意&#xff1a;Sprin…

大模型用到的位置编码汇总(面试)

不同于RNN、CNN等模型&#xff0c;对于Transformer模型来说&#xff0c;位置编码的加入是必不可少的&#xff0c;因为纯粹的Attention模块是无法捕捉输入顺序的&#xff0c;即无法区分不同位置的Token。为此我们大体有两个选择&#xff1a;想办法将位置信息融入到输入中&#x…

第一部分-基础入门-学习导航

专题地址:MacOS一站式程序开发系列专题 第一部分:基础入门学习导航 OSX-01-Mac OS应用开发概述:简单介绍下MacOS生态、Xcode使用以及使用Xcode创建app的方法OSX-02-Mac OS应用开发系列课程大纲和章节内容设计:介绍下此系列专题的文章内容组织形式以及此系列专题的覆盖内容…

OpenHarmony轻量系统开发【1】初始OpenHarmony

1.1系统类型 OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目&#xff0c;目标是面向全场景、全连接、全智能时代&#xff0c;基于开源的方式&#xff0c;搭建一个智能终端设备操作系统的框架和平台&#xff0c;促进万物互…

使用Ollama加载微软开源WizardLM2-7B模型,并进行“弱智吧”问题测试

开发团队在发布模型之前忘记对其进行毒性测试&#xff0c;微软删除了WizardLM2所有相关模型&#xff0c;HuggingFace的WizardLM仓库已经清空。 不过不用担心&#xff0c;WizardLM2模型的许可是Apache 2.0&#xff0c;微软无权要求他人删除复制的仓库。目前在HuggingFace上仍然…

C++语言·类和对象

1. 类的引入 C语言结构体中只能定义变量&#xff0c;但在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数&#xff0c;同时C中struct的名称就可以代表类型&#xff0c;不用像C那样为了方便还要typedef一下。 在C中我们管定义的结构体类型叫做类(student)&a…