蓝桥 程序员节发橙子 (思维)

简介: 蓝桥 程序员节发橙子 (思维)

题目描述
每年的 1024 程序员节日,黑马程序员都会举办大型的庆祝活动。今年的程序员节也不例外,每个班级的同学都发了橙子。

班级里有 n 名同学从前到后排成一排,且已经得知了这些同学的成绩,其中第 i 名同学的成绩是 ai。班主任想根据同学们上个阶段的考试成绩来评定发橙子的数量。为了激励成绩优秀同学,发橙子时需要满足如下要求:

相邻同学中成绩好的同学的橙子必须更多。若相邻的同学成绩一样,则它们分到的数量必须平等。
每个同学至少分配一个橙子
由于预算有限,班主任希望在符合要求的情况下发出尽可能少的橙子。请问,至少需要准备多少橙子呢?

输入
第一行是一个不超过 10^6 正整数 n,表示学生数量。

接下来一行有 n 个不超过 10^9 的非负整数 ai,表示第 i 个同学的成绩。

输出
输出答案,也就是需要最少准备多少个橙子。
样例输入
5
3 4 5 4 3
样例输出
9

分别从左到右和从右到左遍历一次数组,以从左到右的顺序为例
如果a[i]<a[i+1],就让L[i+1]=L[i]+1,类似于差分数组的样子。如果等于就相等,如果大于就附为0
R数组也一样的赋值
最后这一位等于L和R的最大值+1

#include <iostream>
#include <cstdio> 
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

const int maxx=1e6+100;
int a[maxx];
int L[maxx],R[maxx];
int n;

int main(){
   
    scanf("%d",&n);
    for(int i=1;i<=n;i++) 
        scanf("%d",&a[i]);
    L[1]=R[n]=0;
    for(int i=2;i<=n;i++) {
   
        if(a[i]>a[i-1]) L[i]=L[i-1]+1;
        else if(a[i]==a[i-1]) L[i]=L[i-1];
        else L[i]=0;
    }
    for(int i=n-1;i>=1;i--) {
   
        if(a[i]>a[i+1]) R[i]=R[i+1]+1;
        else if(a[i]==a[i+1]) R[i]=R[i+1];
        else R[i]=0;
    }
    ll sum=0;
    for(int i=1;i<=n;i++) sum+=max(L[i],R[i])+(ll)1;
    cout<<sum<<endl;
    return 0;
}
相关文章
|
1月前
|
算法 搜索推荐 程序员
探索编程之美:从代码到艺术
【9月更文挑战第34天】本文旨在通过技术感悟,揭示编程不仅仅是冷冰冰的代码,它更像是一种艺术形式。我们将一起走进编程的世界,感受其内在的美,并通过实际例子展示如何将这种美转化为解决问题的工具。文章不提供具体代码示例,而是聚焦于对编程美学的思考与认识。
|
3月前
|
并行计算 算法 数据处理
编程之道:从代码中领悟技术与生活的哲理
【8月更文挑战第28天】在数字世界的迷宫中,每一行代码都像是宇宙中的一个星系,既独立又相互联系。本文将通过一段简单的Python代码示例,探讨如何从编程实践中汲取生活智慧。我们将看到,代码不仅仅是冷冰冰的指令序列,它也能反映出人类思维的深度和广度。正如甘地所言:“你必须成为你希望在世界上看到的改变。”在编程的世界里,我们同样可以创造并见证这种改变。
43 3
|
8天前
|
算法 搜索推荐
探索编程之美:从代码到艺术的转变
【10月更文挑战第30天】在数字世界中,代码是构建一切的基石。本文将通过一次个人的技术感悟之旅,探讨如何将冷冰冰的代码转变为温暖人心的艺术。我们将一起走进编程的世界,了解它如何影响我们的生活和工作,并揭示那些隐藏在代码背后的故事。让我们抛开复杂的技术术语,以简单直白的语言,一起感受编程的魅力。
|
16天前
|
存储 设计模式 算法
探索编程之美:从代码到艺术的旅程
【10月更文挑战第22天】在数字世界中,代码不仅仅是指令的集合,更是创造力和逻辑的结晶。本文将带领读者踏上一场思维之旅,探索编程背后的美学和哲学,揭示如何通过代码实现技术与艺术的完美融合。从基础的数据结构到复杂的算法设计,我们将一起见证编程如何从简单的指令序列转变为解决问题的艺术形式。
|
18天前
|
程序员
代码与生活:技术感悟中的哲理
【10月更文挑战第20天】 在编程的世界里,我们不仅仅是在编写代码,更是在塑造一种生活方式。本文将探讨如何将编程思维应用到日常生活中,以及这种思维方式如何帮助我们更好地理解世界和自己。通过具体的例子和深入的分析,我们将看到,编程不仅仅是一种技能,更是一种生活哲学。
30 0
|
2月前
|
设计模式 算法 程序员
探索编程之美:从代码中寻找艺术
【9月更文挑战第16天】在数字的世界中,编程不仅仅是冷冰冰的逻辑与算法。它如同绘画、雕塑或音乐一样,拥有其独特的美学。本文将带你领略编程的艺术性,从简单的代码示例出发,深入探讨代码结构、设计模式以及编程思维中的美。通过这些视角,我们不仅能够提升代码的效率和可读性,还能在日常的编程实践中发现更多的乐趣和创造性。
|
2月前
|
程序员
从代码中感悟生活的哲理
【9月更文挑战第12天】本文以编程为引子,探讨了技术背后的哲学思考。文章通过深入浅出的方式,结合生活中的小故事和简单的代码示例,引导读者理解在看似冰冷的代码背后所蕴含的热情与智慧。文章旨在启发读者,无论面对何种挑战,都应保持初心,勇于探索,不断学习,最终找到属于自己的人生方向。
|
2月前
|
前端开发 算法 JavaScript
编程之美:从代码到艺术的转变
【9月更文挑战第17天】在技术的世界里,代码不仅仅是冷冰冰的指令序列,它同样可以是流动的艺术。本文将带你走进编程的内在世界,探索如何通过代码实现功能与美学的完美结合。我们将一起见证一个简单功能的实现,是如何一步步转化为令人赏心悦目的艺术作品,同时不忘提升其背后的技术深度和实用性。
|
6月前
|
小程序 C++ Python
探索代码的诗意——我的编程感悟
【5月更文挑战第31天】在数字世界的浩瀚海洋中,我是一位航行者。每一次按下键盘,都是与机器灵魂的对话。这篇文章是我个人的技术之旅,记录了从困惑到顿悟的过程,以及那些让我着迷的编程之美。它不仅仅是关于技术的,更是关于创造和表达的艺术。
|
6月前
代码之禅:从技术探索到心灵成长
【5月更文挑战第27天】 在数字化的浪潮中,编程不仅仅是一种职业技能,更是一场思维与哲学的修行。本文通过作者的个人技术体悟,探讨如何将编程实践转化为对生活智慧的深刻理解。从面对问题的分析过程到解决方案的实现,再到对技术的深层次思考,文章揭示了编程背后隐含的生活哲理和心灵成长的途径。