[202401C]巨人之力的题解

2024-01-21 01:28
文章标签 题解 巨人 之力 202401c

本文主要是介绍[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;
}

 

这篇关于[202401C]巨人之力的题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>

P2858 [USACO06FEB] Treats for the Cows G/S 题解

P2858 题意 给一个数组。每天把最左或者最右的东西卖掉,第 i i i个东西,第 d a y day day天卖出的价格是 a [ i ] ∗ d a y a[i]*day a[i]∗day。 记忆化搜索 void dfs(int l,int r,int day,ll sum){if(v[l][r]>=sum)return;v[l][r]=sum;if(l>r)//这就是dp答案{

【C++题解】1272. 郭远摘苹果

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》 问题:1272. 郭远摘苹果 类型:二维数组 题目描述: 郭远有一天走到了一片苹果林,里面每颗树上都结有不同数目的苹果,郭远身上只能拿同一棵树上的苹果,他每到一棵果树前都会把自己身上的苹果扔掉并摘下他所在树上的苹果并带走(假设郭远会走过每一棵苹果树),问在郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差是多少?

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

2023 CCPC(秦皇岛)现场(第二届环球杯.第 2 阶段:秦皇岛)部分题解

所有题目链接:Dashboard - The 2023 CCPC (Qinhuangdao) Onsite (The 2nd Universal Cup. Stage 9: Qinhuangdao) - Codeforces 中文题面: contest-37054-zh.pdf (codeforces.com) G. Path 链接: Problem - G - Codeforces