Atcoder beginner contest 336 -- D -- Pyramid

目录

D -- Pyramid:

题目大意:

思路解析:

代码实现:


D -- Pyramid:

题目大意:

给你一个长度为n的数组,你可以对这个数组进行以下操作。

操作1:选择任意一个元素,使其值大小减一。

操作2:删除第一个或者最后一个元素。

在进行有限次操作后,一定可以得到一个形如1 2 3 2 1这样的数字金字塔,问这个长度为n的数组能得到最长的数字金字塔的长度是多少。 1 2 3 2 1 这样的数字金字塔长度为3.

思路解析:

对于数字金字塔的前半部分,ak1 ak2 ak3 ak4 ... ak,如果他前面加上ak0就不能构成数字金字塔了,如果将ak认为是这个数字金字塔的中心,那么我应该知道ak向左最远能到哪个地方。

对于数字金字塔的后半部分 ak ak+1 ak+2....am 如果在后面加上am1就不能构成数字金字塔了,如果将ak认为是这个数字金字塔的中心,那么我应该知道ak向右最远能到哪个地方。

知道了ak的左右边界后,Math.min(l,r)就是ak的总体边界,即当ak为中心时,这个数字金字塔的最大长度,如果对于n个元素每个都能得到他们作为中心时数字金字塔的最大长度,那么对于这些最大长度整体求最大,那么这个长度就是答案。

代码实现:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.*;public class Main {public static void main(String[] args) throws IOException {Scanner input = new Scanner(System.in);int n = input.nextInt();int[] arr = new int[n];int[] l = new int[n];int[] r = new int[n];for (int i = 0; i < n; i++) {arr[i] = input.nextInt();}l[0] = 1;for (int i = 1; i < n; i++) {l[i] = Math.min(l[i - 1] + 1, arr[i]);}r[n - 1] = 1;for (int i = n - 2; i >= 0; i--) {r[i] = Math.min(r[i + 1] + 1, arr[i]);}int ans = 0;for (int i = 0; i < n; i++) {ans = Math.max(ans, Math.min(l[i], r[i]));}System.out.println(ans);}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web前端javaScript笔记——(11)DOM

一、DOM简介 DOM简介 <!DOCTYPE html> <head><meta charset"UTF-8"><title></title><style></style><script type"text/javascript">/*宿主对象&#xff0c;由浏览器&#xff0c;运行环境为我们提供的对…

基于Java SSM框架实现学生成绩管理系统项目【项目源码+论文说明】

基于java的SSM框架实现学生成绩管理系统演示 摘要 学生成绩是高校人才培养计划的重要组成部分&#xff0c;是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而学生所在学院多采用半手工管理学生成绩的方式&#…

FFmpeg技术详解

FFmpeg技术详解 本文概不介绍相关安装配置&#xff0c;详情请入官方或者其他大佬博客&#xff0c;此处做出推荐&#xff1a; https://ffmpeg.org/ FFmpeg官网 https://ffmpeg.github.net.cn/developer.html FFmpeg中文文档 https://blog.csdn.net/m0_47449768/article/details/…

如何安装Docker及对Docker环境进行配置

Linux环境 安装 在线安装 配置yum安装源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum安装docker yum -y install docker-ce-18.06.1.ce-3.el7 docker --version 离线安装 docker安装包下载&#x…

steam搬砖项目赚钱吗?低门槛副业月入5k真的假的?

steam搬砖项目一开始默默无闻&#xff0c;现在越来越受欢迎&#xff0c;因为大家都看到了该项目的长期稳定性。 steam搬砖项目主要是搬csgo游戏装备和道具&#xff0c;从steam购买&#xff0c;在网易Buff上出售&#xff0c;赚取差价。只需少量投资&#xff0c;即可获得长期稳定…

(框架设计-基础库建设) boost 库

“框架”这个词所有的开发都听过&#xff0c;但是有多少人能理解框架的作用&#xff1f;为什么要花那么大精力去弄一个框架&#xff1f;大家应该都听过各个大厂稍微大点的项目都会有一个“框架组”/“架构组”等。 费这么大人力组建一个组来 做框架/架构 到底值不值呢&#xff…

软件测试|Python requests库的安装和使用指南

简介 requests库是Python中一款流行的HTTP请求库&#xff0c;用于简化HTTP请求的发送和处理&#xff0c;也是我们在使用Python做接口自动化测试时&#xff0c;最常用的第三方库。本文将介绍如何安装和使用requests库&#xff0c;以及一些常见的用例示例。 安装requests库 首…

C++ 类、结构体

C 类、结构体 类可以将变量、数组和函数完美地打包在一起。 类与结构体 类的定义&#xff1a; class Person {private:int age,height;double money;string books[100];public:string name;void say(){cout<<"Im"<<name<<endl;}int get_age(){…

Python Matplotlib 动画教程:提高可视化吸引力的强大工具【第24篇—python:Matplotlib】

文章目录 &#x1f356; 方法一&#xff1a;使用pause()函数&#x1f680; 方法二&#xff1a;使用FuncAnimation()函数&#x1f94b; 线性图动画&#xff1a;&#x1f3bb; Python中的条形图追赶动画&#x1f30c; Python中的散点图动画&#xff1a;&#x1f6f9; 条形图追赶的…

JPA的复杂查询包括一对多多对一和多对多的查询

1. 多表关联查询和排序 假设我们有两个实体类&#xff1a;Customer和Order&#xff0c;它们之间是一对多的关系&#xff0c;即一个客户可以有多个订单。我们想要查询某个客户的所有订单&#xff0c;并按订单金额进行降序排序。 Entity Table(name "customers") pu…

Java Web项目中 JSP 访问问题

一、名词说明&#xff1a; 1、JSP 文件一般有两个存放位置 &#xff08;1&#xff09;webapp 的 WEB-INF目录中 &#xff08;2&#xff09;webapp 目录中 其中 存放在 WEB-INF 被成为 安全目录 安全目录&#xff1a;就是客户端无法访问&#xff0c;只有服务端可以访问的…

day01

文章目录 创建Vue实例插值表达式响应式数据常见标签v-htmlv-show v-ifv-if v-else-if v-elsev-onv-bindv-forv-model 综合案例 创建Vue实例 <!--创建Vue实例&#xff0c;初始化渲染1. 准备容器2. 引包&#xff08;官网&#xff09; — 开发版本/生产版本3. 创建Vue实例 ne…

Maven《一》-- 一文带你快速了解Maven

目录 &#x1f436;1.1 为什么使用Maven 1. Mavan是一个依赖管理工具 ①jar包的规模 ②jar包的来源问题 ③jar包的导入问题 ④jar包之间的依赖 2. Mavan是一个构建工具 ①你没有注意过的构建 ②脱离IDE环境仍需构建 3. 结论 &#x1f436;1.2 什么是Maven &#x…

感知机(二分类模型)

目录 1.感知机计算预测值&#xff1a;2.感知机训练&#xff1a;3.损失函数&#xff1a;4.多层感知机&#xff1a;5.单隐藏层的多层感知机代码实现&#xff1a; 1.感知机计算预测值&#xff1a; 训练结果只有1、-1&#xff0c;故正负相同训练正确&#xff0c;正负相反即训练错误…

【DB】MySQL版本5.7和8的区别,以及升级的注意事项

文章目录 1、MySQL版本5.7和8的区别2、MySQL 5.7升级8 1、MySQL版本5.7和8的区别 在数据库管理系统中&#xff0c;MySQL是一个广泛使用、开源的解决方案。它提供了强大的功能&#xff0c;同时具有优秀的性能和可扩展性。 MySQL 5的发布于2005年&#xff0c;在MySQL数据库的发…

实体企业品牌推广之困与解:迅腾文化如何助力企业“显”化品牌价值

在数字化浪潮的冲击下&#xff0c;许多实体企业面临着品牌推广的困境。由于缺乏系统的经验和网络资源的积累&#xff0c;这些企业在品牌推广过程中有很大提升空间。如何以低成本的方式有效推广品牌&#xff0c;成为了实体企业亟待解决的问题。迅腾文化从策略到设计&#xff0c;…

Linux第26步_在虚拟机中安装stm32wrapper4dbg工具

在Ubuntu下编译TF-A 或者 Uboot时&#xff0c;我们需要用到ST公司提供的stm32wrapper4dbg工具。stm32wrapper4dbg工具的源码下载地址为: GitHub - STMicroelectronics/stm32wrapper4dbg 记得我们在前面已经创建过的目录如下&#xff1a; 1&#xff09;、在根目录下&#xf…

Windows项目部署流程

一、部署前需要的工作 ①配置环境变量&#xff1a;将所需的软件和工具的安装路径添加到系统的环境变量中&#xff0c;以便在命令行中可以直接使用。 ②部署项目文件&#xff1a;将项目的文件和代码复制到服务器上的指定目录中&#xff0c;例如Web服务器的网站根目录。 ③配置…

70.网游逆向分析与插件开发-角色数据的获取-自动化助手UI显示角色数据

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;利用技能点属性分析角色数据基址-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;367aa71f60b…

WIndows系统重装、备份与恢复实操问题笔记

一 windows重装 1.1 基本步骤 下载大白菜根据官网使用教程制作启动u盘从MSDN或者微软官网下载Windows镜像根据查询的快捷键进入BIOS系统&#xff0c;设置U盘为第一启动 重装 1.2 Windows 11 激活 微软其实在2023年9月20日的公告中宣布停掉免费升级&#xff0c;数字激活工具…