[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和r
	long 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;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二百七十八回

文章目录 1. 概念介绍2. 使用方法2.1 DropdownMenu2.1 DropdownMenuEntry 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何禁止页面跟随手机自动旋转"相关的内容&#xff0c;本章回中将介绍DropdownMenu组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1.…

ClickHouse与Doris数据库比较

概述 都说“实践是检验真理的唯一标准”&#xff0c;光说不练假把式&#xff0c;那么本文就通过实际的测试来感受一下Doris和clickhouse在读写方面的性能差距&#xff0c;看看Doris盛名之下&#xff0c;是否真有屠龙之技&#xff1b;clickhouse长锋出鞘&#xff0c;是否敢缚苍…

Cortex-M3/M4内核NVIC及HAL库函数详解(4):使用HAL库配置外部中断

0 工具准备 Keil uVision5 Cortex M3权威指南&#xff08;中文&#xff09; Cortex M3与M4权威指南 stm32f407的HAL库工程 STM32F4xx中文参考手册 1 使用HAL库配置外部中断 前面我们已经熟悉了有关内核部分的寄存器配置&#xff0c;接下来我们结合stm32f407的GPIO外设&#xf…

UE 可靠UDP实现原理

发送 我们的消息发送都是通过 UChannel 来处理的&#xff0c;通过调用 UChannel::SendBunch 统一处理。 发送的 Bunch 是以 FOutBunch 的形式存在的。当 bReliable 为 True 的时候&#xff0c;表示 Bunch 是可靠的。 发送逻辑直接从UChannel::SendBunch处开始分析 1、大小限…

Docker(六)数据管理

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; Docker 数据管理 这一章介绍如何在 Docker 内部以及容器之间管理数据&#xff0c;在容器中管理数据主要有两种方式&#xff1a; 数据卷&…

postman使用-07变量

文章目录 一、变量参数化&#xff08;一&#xff09;、环境变量1、两种方式设置环境变量方法一方法二 2、引用3、选择需要的环境变量 &#xff08;二&#xff09;、参数变量1、全局变量设置全局变量引用查看引用的变量是否是自己设定的值 2、局部变量设置局部变量引用 二、文档…

Halcon基于描述符的模板匹配

Halcon基于描述符的模板匹配 与基于透视形变的模板匹配类似&#xff0c;基于描述符的模板匹配能够在物体处于透视形变的状态下进行匹配&#xff0c;并且已标定和未标定的相机图像都适用。与透视形变不同的是&#xff0c;它的模板不是根据边缘轮廊创建的&#xff0c;而是根据特…

Golang 中如何实现 Set

在Go编程中&#xff0c;数据结构的选择对解决问题至关重要。本文将探讨如何在 GO 中实现 set 和 bitset 两种数据结构&#xff0c;以及它们在Go中的应用场景。 Go 的数据结构 Go 内置的数据结构并不多。工作中&#xff0c;我们最常用的两种数据结构分别是 slice 和 map&#…

Rancher部署k8s集群测试安装nginx(节点重新初始化方法,亲测)

目录 一、安装前准备工作计算机升级linux内核时间同步Hostname设置hosts设置关闭防火墙&#xff0c;selinux关闭swap安装docker 二、安装rancher部署rancher 三、安装k8s安装k8s集群易错点&#xff0c;重新初始化 四、安装kutectl五、测试安装nginx工作负载 一、安装前准备工作…

【排序算法】六、快速排序(C/C++)

「前言」文章内容是排序算法之快速排序的讲解。&#xff08;所有文章已经分类好&#xff0c;放心食用&#xff09; 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 快速排序1.1 原理1.2 Hoare版本&#xff08;单趟&#xff09;1.3 快速排序完整代码&…

基于Elasticsearch+Logstash+Kibana+Filebeat的日志收集分析及可视化

sudo rm /var/lib/dpkg/lock* sudo dpkg --configure -a apt update tail -f /var/log/car.log 1.1、项目概述 海量的业务应用&#xff0c;也带来了海量的日志数据&#xff0c;给业务应用的运维带来了新的挑战。例如&#xff0c;我们常用的网约车应用&#xff0c;单个平台…

4496 蓝桥杯 求函数零点 简单

4496 蓝桥杯 求函数零点 简单 //C风格解法1&#xff0c;通过率100% #include <bits/stdc.h> // int a, b; 一定会自动初始化为 0int main(){int a 2, b 3; // 定义a&#xff0c;b&#xff0c;不会自动初始化&#xff0c;最好自己定义时初始化// windows环境下a值固定&…

在WIN从零开始在QMUE上添加一块自己的开发板(二)

文章目录 一、前言往期回顾 二、CPU虚拟化&#xff08;一&#xff09;相关源码&#xff08;二&#xff09;举个例子&#xff08;三&#xff09;测试 三、内存虚拟化&#xff08;一&#xff09;相关源码&#xff08;二&#xff09;举个例子测试 参考资料 一、前言 笔者这篇博客…

[MySQL]基础的增删改查

目录 1.前置介绍 2.数据库操作 2.1显示当前数据库 2.2创建数据库 2.3 使用数据库 2.4 删除数据库 3.常用数据类型 3.1整型和浮点型 3.2字符串类型 4.表的操作 4.1查看表结构 4.2创建表 4.3删除表 5.重点 5.1操作数据库 5.2常用数据类型 5.3操作表 1.前置介绍 …

IEEE-2024年第五届人工智能、机器人及控制国际会议(AIRC 2024)

IEEE--2024年第五届人工智能、机器人及控制国际会议(AIRC 2024) 会议时间: 2024年4月22-24日 会议地点: 埃及开罗 埃及英国大学 会议网址:AIRC 2024 | Artificial Intelligence, Robotics and Controlhttps://www.airc.org/ 埃及开罗 埃及英国大学 会议组织单位&#xff1a; 征…

【精选】中间件 tomcat漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

139基于matlab多旅行商MTSP问题

基于matlab多旅行商MTSP问题&#xff0c;利用遗传算法求解多旅行商问题的算法设计&#xff0c;输出MTSP路径。相互独立路径&#xff0c;同一起点路径。程序已调通&#xff0c;可直接运行。 139 matlab多旅行熵M-TSP (xiaohongshu.com)https://www.xiaohongshu.com/explore/65ab…

宝塔 ftp 服务器发回了不可路由的地址/读取目录列表失败

ftp连接不上&#xff1a; 1.注意内网IP和外网IP 2.检查ftp服务是否启动 &#xff08;面板首页即可看到&#xff09; 3.检查防火墙20端口 ftp 21端口及被动端口39000 - 40000是否放行 &#xff08;如是腾讯云/阿里云等还需检查安全组&#xff09; 4.是否主动/被动模式都不能连接…

2024 Windows10 | 搭建MySQL Cloudbeaver 可视化DBS | Docker Compose本地环境

2024 Windows10 | 搭建MySQL Cloudbeaver 可视化DBS | Docker Compose本地环境 前提条件docker-compose.yml总结 | 用Docker的原因&#xff1f; | 遇到的问题&#xff1f; 前提条件 Windows10 已安装 Docker Desktop提前准备映射用的4个文件夹&#xff08;3个用在 MySQL&#…

51单片机中断

1、什么是中断&#xff1f; CPU在处理某一事件A时&#xff0c;发生了另一事件B请求CPU迅速去处理&#xff08;中断发生&#xff09;&#xff1b; CPU暂时中断当前的工作&#xff0c;转去处理事件B&#xff08;中断响应和中断服务&#xff09;&#xff1b; 待CPU将事件B处理完…