[202401C]巨人之力的题解

原题描述:

时间限制: 1000ms

空间限制: 262144kb

题目描述

两千多年以前,身为艾尔迪亚人的尤弥尔意外获得巨人之力,并且创造了九大巨人,其无以匹敌的力量使得整个世界都陷入了无尽的战乱纷争,艾尔迪亚之外的人类过着惨淡的生活,生灵涂炭。某天,艾尔迪亚的初代王厌倦了战争,战争的罪孽感使他奉行不战主义,于是他带着一部分艾尔迪亚人蜗居在帕拉迪岛上,并且篡改了这些子民的记忆,让他们忘记了自己能够变成巨人的事实,从此与世隔绝。

​ 而世界不会忘记艾尔迪亚人的罪孽!其中马莱国掌控了艾尔迪亚残党,虽然这些残党也拥有巨人之力,但是他们从小就被灌输着马莱的历史文化思想,深知自己是祖先的余孽。并且科技是第一生产力,仅靠这些残党的力量无法抵御发展数百年的热兵器的攻击。

​ 就在今天,马莱国将要实施复仇计划,准备入侵帕拉迪岛!小贝作为艾尔迪亚残党,也被马莱国用于攻击帕拉迪岛上的艾尔迪亚人。小贝的巨人之力可以使岛上的艾尔迪亚人化身巨人,从而“化敌为友”,帮助马莱国攻击帕拉迪岛。而实际上,小贝的内心深处不忍心岛上的同胞被巨人侵害得过于惨重,于是他向你求助,如何使得巨人力量总和最小。


帕拉迪岛上有n 名艾尔迪亚士兵站成一排抵御来自马莱国的攻击,其中第 i名士兵的力量值为a_i

小贝可以做若干轮以下操作:

  • 选择两个位置 l,r 满足 1 \le l \le r \le n
  • [l,r]的士兵全部化身为巨人,且 l < i <r中的所有位置上的巨人的力量值变为\max(a_l,a_r)

[l,r]中有些位置上的士兵可能在之前的操作中已经变成巨人,但是在此轮这些巨人的力量也会得到改变。

你需要将所有士兵都变成巨人。若干轮操作之后,所有巨人的力量值总和最小是多少,即求\sum_{i=1}^na_i的最小值。

输入格式

第一行一个正整数n

第二行 n 个正整数,表示 n 名艾尔迪亚士兵的力量值。

输出格式

输出一个正整数,表示若干轮操作后,最小的巨人的力量值总和。

样例

Input 1
3
5 1 7
Output 1
13
Input 2
5
1 3 4 2 5
Output 2
12
Input 3i
9
9 11 5 16 9 7 4 18 13
Output 3
68

数据范围

  • 1 \sim 10个测试点:1 \le n \le 100
  • 第 11 \sim 20个测试点: 1 \le n\le 10^5
  • 所有测试点:1 \le a_i \le 10^9

样例解释

  • 样例 2 中,选择区间顺序如下:
    • 1 \sim 4,序列变为{1,2,2,2,5}
    • 5 \sim 5,序列不变。

主要思路:

这题打爆力100\%超时,我们可以这样子想:对于第i个士兵,如果他的左边最小值和右边最小值比这个士兵要小,那么这个士兵一定会变成\max(l_i,r_i)

否则,就还是原来的样子。

代码code: 

#include<bits/stdc++.h>
using namespace std;
int n;
int a[100010];
int l[100010],r[100010];
int main()
{cin>>n;memset(l,0x3f,sizeof(l));memset(r,0x3f,sizeof(r));//别忘了初始化for(int i=1;i<=n;i++){cin>>a[i];l[i] = min(l[i-1],a[i]);}for(int i=n;i>=1;i--){r[i] = min(r[i+1],a[i]);}//预处理出l和rlong long ans=0;for(int i=1;i<=n;i++){if(a[i]>l[i]&&a[i]>r[i])//如果可以被改{ans+=max(l[i],r[i]);//改掉}else{ans+=a[i];//否则就不改}}cout<<ans;return 0;
}

 

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

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

相关文章

docker-compose直接官网二进制文件安装(linux)

试了很多种方法&#xff0c;国内镜像库安装&#xff0c;会报语法错误 直接用github官网&#xff0c;命令安装下载太慢&#xff0c;还不如魔法下载 官网链接docker-compose-linux-x86_64https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-linux-x8…

温度采样【通道选通】S9KEAZ128的PTA2和PTA3引脚无法拉高

1、问题记录&#xff1a;由18串温度采样修改成32串温度采样&#xff0c;增加一路adc采样&#xff0c;通过cd4051控制通道选通&#xff0c;代码中增加了相应的代码&#xff0c;发现增加的最后8路温度不能够控制&#xff0c;以24串为例&#xff0c;给温度传感器增加温度&#xff…

pytorch(四)、完整小网络的搭建和sequential的使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言搭建小网络和sequential的使用一、 第一种形式如下&#xff1a;二、第二种方式&#xff0c;使用sequential 前言 至此&#xff0c;神经网络的基础部分就基本结…

解决Spring Boot跨域问题(配置JAVA类)

什么是跨域问题 跨域问题指的是不同端口之间&#xff0c;使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制&#xff0c;它是为了保证用户的安全&#xff0c;防止恶意网站窃取数据。 比如前端用的端口号为8081&#xff0c;后端用的端口号为8080&#xff0c;后…

C语言从入门到实战——编译和链接

编译和链接 前言一、 翻译环境和运行环境二、 翻译环境2.1 预处理&#xff08;预编译&#xff09;2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 三、 运行环境 前言 在C语言中&#xff0c;编译和链接是将源代码转换为可执行文件的两个主要步骤。 编…

MacBookPro怎么数据恢复? mac电脑数据恢复?

使用电脑的用户都知道&#xff0c;被删除的文件一般都会经过回收站&#xff0c;想要恢复它直接点击“还原”就可以恢复到原始位置。mac电脑同理也是这样&#xff0c;但是“回收站”在mac电脑显示为“废纸篓”。 如果电脑回收站&#xff0c;或者是废纸篓里面的数据被清空了&…

App 测试工具大全,收藏这篇就够了

随着移动互联网的高速发展&#xff0c;App应用非常火&#xff0c;测试工程师也会接触到各种app应用。除了人工测试之外&#xff0c;也可以通过一些测试工具来提高我们的测试效率&#xff0c;以下对于我用过或听过的app测试工具做了一个统一整理&#xff0c;欢迎补充。 一、APP自…

【51单片机Keil+Proteus8.9+ADC0804】ADC实验 模拟转数字实验

一、实验名称 ADC实验 模拟转数字实验 二、设计思路 电路设计 1.选用AT89C51单片机作为电路核心单元&#xff0c;外接8位单通道AD转换器ADC0804芯片和LM016L显示器以及滑动变阻器等其它常用元器件构成电路。 2.将ADC0804芯片的控制引脚RD,WR,INTR接到AT89C51芯片对应引脚&…

Spring Boot程序的打包与运行:构建高效部署流程

引言 在现代应用开发中&#xff0c;高效的打包和部署流程对于项目的开发、测试和上线至关重要。Spring Boot作为一种快速开发框架&#xff0c;提供了方便的打包工具和内嵌式的Web服务器&#xff0c;使得打包和运行变得更加简单。本文将研究在Spring Boot应用中如何进行打包&am…

外包干了5个月,技术退步明显...

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

【数据库】聊聊InnoDB存储引擎结构

在学习任何技术、框架、中间件的时候&#xff0c;我们都需要从一个宏观的角度先去了解一下大概视角&#xff0c;然后在通过剖定解牛的方式进行细分点的学习&#xff0c;同样对于任何存储结构来说&#xff0c;基本上都包含几块内容。 通信&#xff1a;解决信息传输问题、存储模型…

k8s资源介绍

Kubernetes架构图 Kubernetes系统用于管理分布式节点集群中的微服务或容器化应用程序&#xff0c;并且其提供了零停机时间部署、自动回滚、缩放和容器的自愈&#xff08;其中包括自动配置、自动重启、自动复制的高弹性基础设施&#xff0c;以及容器的自动缩放等&#xff09;等…

上海智慧岛大数据云计算中心项目正式封顶!

上海智慧岛大数据云计算中心封顶仪式现场 1月15日&#xff0c;云端股份在上海智慧岛大数据云计算中心举行封顶仪式。云之端网络&#xff08;江苏&#xff09;股份有限公司&#xff08;以下称“云端股份”&#xff09;总经理贡伟力先生&#xff0c;常务副总张靖先生等公司成员&…

VS生成C++动态链接库DLL

1、官方文档&#xff1a; 在 Visual Studio 中创建 C/C DLL | Microsoft Learn 演练&#xff1a;创建和使用自己的动态链接库 (C) | Microsoft Learn 创建和调用步骤&#xff0c;主要按照第二篇操作。 一、建立DLL项目生成库文件 直接建立C的DLL项目&#xff0c;注意叙述&am…

Docker(八)高级网络配置

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 高级网络配置 注意&#xff1a;本章属于 Docker 高级配置&#xff0c;如果您是初学者&#xff0c;您可以暂时跳过本章节&#xff0c;直接学习…

广东金牌电缆:法大大电子合同助力业务风险管控

广东金牌电缆集团股份有限公司&#xff08;以下简称“广东金牌电缆”&#xff09;成立于2013年&#xff0c;现为广东省电线电缆重点生产企业、广东省守合同重信用单位、国家专精特新小巨人企业、国家高新技术企业&#xff0c;拥有自主商标“夺冠”&#xff0c;“夺冠”商标被评…

Python 中多线程与多处理之间的区别

一、说明 在本文中&#xff0c;我们将学习 Python 中多线程和多处理的内容、原因和方式。在我们深入研究代码之前&#xff0c;让我们了解这些术语的含义。 二、基本术语和概念 程序是一个可执行文件&#xff0c;它由一组执行某些任务的指令组成&#xff0c;通常存储在计算机的…

IntelliJ IDEA 常用快捷键一览表(通用型,提高编写速度,类结构、查找和查看源码,替换与关闭,调整格式)

文章目录 IntelliJ IDEA 常用快捷键一览表1-IDEA的日常快捷键第1组&#xff1a;通用型第2组&#xff1a;提高编写速度&#xff08;上&#xff09;第3组&#xff1a;提高编写速度&#xff08;下&#xff09;第4组&#xff1a;类结构、查找和查看源码第5组&#xff1a;查找、替换…

第二课:BERT

文章目录 第二课&#xff1a;BERT1、学习总结&#xff1a;为什么要学习BERT&#xff1f;预训练模型的发展历程BERT结构BERT 输入BERT EmbeddingBERT 模型构建BERT self-attention 层BERT self-attention 输出层BERT feed-forward 层BERT 最后的Add&NormBERT EncoderBERT 输…

修复uni-simple-router@2.0.7版本query参数null的bug

问题&#xff1a;query参数为null或者为空时&#xff0c;插件内部参数校验问题导致的会报错&#xff1a;TypeError: Cannot convert undefined or null to object at Function.keys 源码修改如下&#xff1a; 通过打补丁的方式修复query参数类型校验问题 1. 安装patch-packag…