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

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

题目描述
每年的 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;
}
相关文章
|
机器学习/深度学习 Web App开发 算法
如何寻找论文及其相关代码?
如何寻找论文及其相关代码?
3111 1
|
数据挖掘 数据处理 调度
【软件设计师备考 专题 】计算机专业英语:掌握基本词汇和阅读理解技巧(一)
【软件设计师备考 专题 】计算机专业英语:掌握基本词汇和阅读理解技巧
688 0
|
11月前
|
人工智能 数据挖掘 BI
企业智能体定制的公司有哪些
助君跃专注制造业中小企业AI服务,深耕生产数据挖掘与管理提效,以务实沟通、定制化方案、灵活付费和贴心落地服务赢得口碑。相比大厂,其更贴近企业实际,助力降本增效,精准响应数字化转型需求,彰显细分领域智能化价值。(238字)
|
12月前
|
数据采集 人工智能 搜索推荐
医朵云与阿里云达成全栈AI合作
医朵云携手阿里云,基于通义千问系列大模型推出临床研究助手,实现患者智能筛选、数据自动录入、不良反应精准识别等功能,单例筛选成本降70%以上,大幅提升新药研发效率,推动AI+临床研究新范式。
985 1
医朵云与阿里云达成全栈AI合作
|
SQL HIVE
hive留存率的统计
hive留存率的统计
|
人工智能 算法 API
构建基于 Elasticsearch 的企业级 AI 搜索应用
本文介绍了基于Elasticsearch构建企业级AI搜索应用的方案,重点讲解了RAG(检索增强生成)架构的实现。通过阿里云上的Elasticsearch AI搜索平台,简化了知识库文档抽取、文本切片等复杂流程,并结合稠密和稀疏向量的混合搜索技术,提升了召回和排序的准确性。此外,还探讨了Elastic的向量数据库优化措施及推理API的应用,展示了如何在云端高效实现精准的搜索与推理服务。未来将拓展至多模态数据和知识图谱,进一步提升RAG效果。
843 1
|
Ubuntu IDE 开发工具
修复Ubuntu启动时提示"无可启动设备"的问题。
上述步骤旨在提供一套综合的诊断与修复策略。在操作过程中应当小心谨慎,尤其是所有与分区表相关的操作,因为一旦不当操作可能导致数据丢失。若非专业人士则建议在进行重要操作之前备份数据,并在实施修复措施时考虑寻求专业技术人员的帮助。
724 0
|
供应链 安全 JavaScript
库存周转率是什么?一文讲清评估供应链效率的底层逻辑
本文深入解析库存周转率的定义、计算方法及其在制造企业中的应用价值,揭示其作为供应链效率核心指标的意义,并探讨常见误区与优化策略,助力企业提升运营效率。

热门文章

最新文章