蓝桥杯真题——good-sequence(C语言)

 问题描述

一个序列 [b1,b2,...,bm] 若对于 2≤i≤m 满足 bi≤b1 ,则称为好序列。

现在给定 [a1,a2,...,an] ,求对于该序列的每一个后缀 [ak,ak+1,...,an](1≤k≤n)最少能划分成多少个好序列。

输入格式

第一行包含一个整数 n ,表示数组 a 的长度。

第二行包含 nn 个整数 a1,a2,a3,...,an,两两之间以一个空格分隔。

输出格式

输出 n 行,第 i 行输出 k=i时的答案。

样例输入

6

1 1 4 5 1 4

样例输出 

3

3

2

1

2

1

样例解释

当 k=1 时, 可划分为: [[1,1],[4],[5,1,4]] 。

当 k=2 时, 可划分为: [[1],[4],[5,1,4]] 。

当 k=3 时, 可划分为: [[4],[5,1,4]] 。

当 k=4 时, 可划分为: [[5,1,4]] 。

当 k=5 时, 可划分为: [[1],[4]] 。

当 k=6 时, 可划分为: [[4]] 。

评测数据规模

对于所有评测数据, 1\leq n\leq _{10^{6}} 1\leq ai\leq _{10^{9}}

运行限制

语言最大运行时间最大运行内存
C2s256M

解法代码 

#include <stdio.h>
#include <stdlib.h>#define N 1000010 // 定义数组的最大长度int a[N], arr[N]; // a数组用于存储输入数据,arr数组用于存储结果
int stack[N]; // 使用数组来模拟栈,存储元素的索引
int stack_top = -1; // 栈顶指针,初始化为-1表示栈为空int main() 
{int n = 0; // 定义变量n用于存储输入的元素个数scanf("%d", &n); // 从标准输入读取元素个数for (int i = 0; i < n; i++) { scanf("%d", &a[i]);// 循环读取n个元素到数组a中}/** 从后往前遍历数组a,模拟deque的行为* 对于每个元素,找到其右边第一个比它大的元素的索引,并计算距离(长度+1)*/for (int i = n - 1; i >= 0; i--) {// 弹出栈顶元素,直到栈为空或栈顶元素对应的值大于当前元素的值while (stack_top >= 0 && a[stack[stack_top]] <= a[i]) {stack_top--; // 栈顶指针下移,表示弹出栈顶元素}// 设置arr值// 如果栈不为空,则arr[i]为栈顶索引+1(表示长度)+1(因为要从1开始计数,如果要从0开始则去掉一个+1)// 如果栈为空,则arr[i]为1,表示当前元素右边没有比它大的元素if (stack_top >= 0) {arr[i] = stack_top + 1 + 1; // 注意这里的+1+1,第一个+1是长度,第二个+1是因为从1开始计数}else {arr[i] = 1;}// 将当前元素的索引压入栈中stack[++stack_top] = i; // 栈顶指针上移,并将当前元素的索引存入栈顶}/** 输出arr数组中的值* 注意:此时arr数组中的索引对应的是原数组a中的索引(从0开始)* 如果需要从1开始输出索引对应的值,可以在打印时做一个简单的调整(例如,打印arr[i] + 1)* 但由于C语言习惯从0开始索引,这里直接输出即可*/for (int i = 0; i < n; i++) {printf("%d\n", arr[i]); // 打印arr数组中的每个值}return 0; 
}

答案验证

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

智慧煤矿可视化管理平台

通过图扑可视化平台集成实时数据采集&#xff0c;提供对煤矿生产、安全及环境监测等多方面的二三维动态展示。通过优化资源调度和风险预警&#xff0c;提高了煤矿运营效率和安全性&#xff0c;支持科学决策与管理。

华为ISC供应链服务运营:流程、组织、治理与绩效管理的综合框架

华为整合物流服务&#xff08;Integrated Logistics Services&#xff0c;简称ILS&#xff09;是华为推出的一项旨在提升供应链效能和敏捷性的创新举措。以下是关于华为ILS运营模式设计的详细分析&#xff1a; 一、运营模式设计的核心目标 华为ILS运营模式设计的核心目标是实…

优化时钟网络之时钟偏移

Note&#xff1a;文章内容以Xilinx 7系列FPGA进行讲解 1、基本介绍 所谓时钟偏移&#xff08;Clock Skew&#xff09;&#xff0c;是指在同步时序电路中&#xff0c;同一个时钟信号到达各个寄存器时钟端口的时间不一致的现象。如下图所示&#xff1a; 时钟从源端到达寄存器FF1的…

华为ENSP路由器出现41解决方法之一

我解决这个问题的方法&#xff1a; 这个方法很简单 一&#xff0c;首先我们打开电脑上的Oracle VM VirtualBox&#xff0c;找到AR_Base(ARse_Link) ,右键删除 二&#xff0c;打开ENSP模拟器&#xff0c;选择一个AR系列路由器并启动&#xff0c;在时候ENSP会提示&#xff1a;未…

17RAL_Visual-Inertial Monocular SLAM with Map Reuse

文章目录 累啊Abstract1.Introduction2.视觉-惯性基本原理 (VISUAL-INERTIAL PRELIMINARIES)3. 视觉惯性 ORB-SLAM (VISUAL-INERTIAL ORB-SLAM)A.TrackingB. Local MappingC. Loop Closing 4.IMU INITIALIZATIONA. 陀螺仪偏置估计B. 尺度和重力的近似&#xff08;无加速度计偏置…

鸿蒙应用开发实践示例:创建首页

鸿蒙应用开发实践示例&#xff1a;创建首页 效果示例图示例代码 效果示例图 示例代码 import { window } from kit.ArkUI;Entry Component struct Index {//Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景Pr…

StringUtils 工具类

在日常的编程工作中&#xff0c;字符串&#xff08;String&#xff09;处理是一个非常常见且重要的任务。无论是字符串的判空、截取、转换大小写、分隔、比较&#xff0c;还是去除多余空格、拼接、使用正则表达式等操作&#xff0c;都需要我们编写大量的代码来处理各种边界情况…

【视觉SLAM】Windows下编译Pangolin-0.5,显示SLAM运动轨迹

1. 三方库配置 Pangolin v0.5 eigen3 v3.3.8 glew v2.1.0 1.1 glew eigen3 glew&#xff1a;直接下载预编译版本即可&#xff08;注意&#xff1a;查看自己电脑显卡支持的OpenGL版本&#xff0c;下载支持对应版本的glew&#xff0c;不然无法显示窗口&#xff09;&#xff1b;e…

人工智能、机器学习与深度学习:层层递进的技术解读

引言 在当今科技快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为一个热门话题&#xff0c;几乎渗透到了我们生活的方方面面。从智能手机的语音助手&#xff0c;到自动驾驶汽车&#xff0c;再到医疗诊断中的图像识别&#xff0c;人工智能的应用正在改变我…

如何构建数仓中的维度拉链表

1 什么是拉链表 1&#xff09;拉链表是针对数据仓库设计中表存储数据的方式而定义的&#xff0c;顾名思义&#xff0c;所谓拉链&#xff0c;就是记录历史。记录一个事物从开始&#xff0c;一直到当前状态的所有变化的信息。 2&#xff09;使用拉链表既能满足反应数据的历史状…

后端SpringBoot学习项目-项目基础搭建

IDEA创建SpringBoot项目 大佬文章&#xff0c;有基础者可以直接打开参考。我这个记录的是纯纯小白的步骤 创建项目 按钮新建 点击按钮-----新建项目 弹窗配置–生成器 弹窗中选择生成器 ---- Spring Initializr ○ 服务器URL修改为 start.springboot.io start.aliyun.co…

Android CarrierConfig 参数项和正则匹配逻辑

背景 在编写CarrierConfig的时候经常出现配置不生效的情况&#xff0c;比如运营商支持大范围的imsi&#xff0c;或者是测试人员写卡位数的问题等等&#xff0c;因此就需要模式匹配&#xff08;包含但不限于正则表达式&#xff09;。 基本概念: 模式匹配涉及定义一个“模式”&a…

《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》

一、GC6125 在 IPcamera 和云台控制中的卓越表现 驱动能力&#xff1a;为监控注入强劲动力 GC6125 作为一款专为 IPcamera 和云台控制而设计的驱动芯片&#xff0c;拥有令人惊叹的驱动能力。在云台电机的驱动方面&#xff0c;它就像一位技艺精湛的驭手&#xff0c;能精准地掌控…

qt QUndoView详解

1、概述 QUndoView 是 Qt 框架中用于显示 QUndoStack&#xff08;撤销堆栈&#xff09;内容的视图类。它通常与 QUndoStack 一起使用&#xff0c;为用户提供了一个可视化的界面来查看和操作撤销/重做历史。QUndoView 可以显示堆栈中的每个命令&#xff0c;并允许用户通过界面进…

spring:Spring Security实践过程中的报错总结

文章目录 问题1报错解决 问题2报错解决 问题3报错解决 问题4报错解决 问题5报错解决 问题6报错解决 问题1 报错 You have entered a password with no PasswordEncoder. If that is your intent, it should be prefixed with {noop}. 解决 Spring Security 期望密码使用 Pa…

目前对于后期的打算

在完成了 Python 基本语法的学习后&#xff0c;我犹如推开了编程世界的一扇大门&#xff0c;初窥门径却也深知前方还有广袤无垠的知识天地等待我去探索。Python 作为一门广泛应用于软件开发、数据分析和人工智能等领域的高级编程语言&#xff0c;在当今数字化时代具有举足轻重的…

多种算法解决组合优化问题平台

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月11日7点12分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17302099790265&uidef7618fa204346ff9…

C/C++逆向:结构体逆向分析

在C/C程序的逆向分析中&#xff0c;结构体的逆向分析是非常重要的。结构体是C/C中管理和组织数据的一种主要方式。了解它们的布局可以帮助你理解程序是如何存储、处理和传递数据的&#xff0c;结构体常用于组织和管理复杂的数据&#xff0c;理解结构体有助于我们更好地还原程序…

Kettle启动闪退(Couldn‘t read the database cache)

强制关机之后&#xff0c;kettle启动闪退 具体可以用debug模式运行脚本来定位问题 启动之后查看运行日志 DEBUG: Using JAVA_HOME DEBUG: _PENTAHO_JAVA_HOMEC:\Application\JDK DEBUG: _PENTAHO_JAVAC:\Application\JDK\bin\java.exeC:\Application\Kettle\data-integratio…

【机器学习】任务十:从函数分析到机器学习应用与BP神经网络

目录 1.从函数分析到机器学习应用 1.1 3D曲面图可视化报告 1.1.1 目标 1.1.2 代码分析 1.1.3 结果分析 1.1.4 观察与总结 1.1.5 结论 1.2 一元函数梯度计算报告 1.2.1 目标 1.2.2 代码分析 1.2.4 计算结果 1.2.5 优势与意义 1.2.6 结论 1.3 一元函数梯度和二阶导…