当前位置: 首页 > news >正文

[传智杯 #2 初赛] 1024 程序员节发橙子

题目描述

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

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

  • 相邻同学中成绩好的同学的橙子必须更多。若相邻的同学成绩一样,则它们分到的数量必须平等。
  • 每个同学至少分配一个橙子

由于预算有限,班主任希望在符合要求的情况下发出尽可能少的橙子。请问,至少需要准备多少橙子呢?

输入格式

第一行是一个整数 n,表示学生数量。

接下来一行有 n 个整数,第 i 个整数 ai​,表示第 i 个同学的成绩。

输出格式

输出答案,也就是需要最少准备多少个橙子。

输入输出样例

输入 #1复制

5
3 4 5 4 3

输出 #1复制

9

说明/提示

样例 1 解释

每位同学拿到的橙子的数量分别是 1,2,3,2,1所以至少需要准备 9个。

数据规模与约定

对于全部的测试点,保证 1≤n≤106,0≤ai​≤10的9次方。

#include <iostream>
#include <math.h>
using namespace std;long long n,sum=0,w=1;int s[1000010],q[1000010];
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>s[i];q[i]=1;//初始化全部都为1个橙子}for(int i=2;i<=n;i++){//先正序遍历,后一个比前一个成绩好的就加一个橙子if(s[i-1]<s[i])q[i]=q[i-1]+1;if(s[i]==s[i-1])//如果成绩一样,就后一个橙子的数量等于前一个的数量q[i]=q[i-1];}for(int i=n;i>=2;i--){//再逆序遍历if(s[i]<s[i-1]) q[i-1]=max(q[i-1],q[i]+1);//如果前一个成绩更好,就比后一个多一个橙子,再和之前正序遍历的橙子数比较,取更大值if(s[i-1]==s[i]) q[i-1]=q[i];//如果相等就前一个等于后一个}for(int i=1;i<=n;i++){sum+=q[i];}//for循环把橙子的数量相加cout<<sum;return 0;
}

相关文章:

  • python-比较Excel两列数据,并分别显示差异
  • 如何在Ubuntu上清理缓存和垃圾文件
  • 【android开发-06】android中textview,button和edittext控件的用法介绍
  • 程序员如何开发高级python爬虫?
  • dtaidistance笔记:dtw_ndim (高维时间序列之间的DTW)
  • 快照读通过MVCC解决不可重复读当前读通过间隙锁解决幻读
  • 【Python3】【力扣题】383. 赎金信
  • UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大内核ConvNet
  • 鸿蒙原生应用/元服务开发-Stage模型能力接口(一)
  • 【ARM CoreLink 系列 8.1 -- SMMU 详细介绍-STE Entry 详细介绍 1】
  • 备忘录怎么传到电脑?备忘录手机电脑互传方法
  • Linux存储软件栈到底有多复杂,存储软件栈全景概览
  • 【文件上传系列】No.0 利用 FormData 实现文件上传、监控网路速度和上传进度(原生前端,Koa 后端)
  • Python 作业答疑_6.15~6.18
  • 【JPA】JPA构建动态查询条件
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • node学习系列之简单文件上传
  • React+TypeScript入门
  • vuex 笔记整理
  • vue的全局变量和全局拦截请求器
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 包装类对象
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 关于字符编码你应该知道的事情
  • 机器学习中为什么要做归一化normalization
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 前端设计模式
  • 使用agvtool更改app version/build
  • 双管齐下,VMware的容器新战略
  • 小试R空间处理新库sf
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 用jQuery怎么做到前后端分离
  • 云大使推广中的常见热门问题
  • 《天龙八部3D》Unity技术方案揭秘
  • const的用法,特别是用在函数前面与后面的区别
  • MyCAT水平分库
  • !!Dom4j 学习笔记
  • # 安徽锐锋科技IDMS系统简介
  • #includecmath
  • (4)事件处理——(7)简单事件(Simple events)
  • (C)一些题4
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (windows2012共享文件夹和防火墙设置
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • .NET Standard 的管理策略
  • .NET 常见的偏门问题
  • .NET下的多线程编程—1-线程机制概述
  • [Android View] 可绘制形状 (Shape Xml)
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [C语言]——函数递归