蓝桥杯高频考点真题单——4.修改数组

修改数组

8.修改数组 - 蓝桥云课 (lanqiao.cn)

本来我的思路很一般,用一个set,记录每一段的最值,然后分情况讨论,如果查询到未记录的,那就直接输出,并记录。如果当前值前面已经有过,那就直接从set中调出首个比他大的值,就是该段最值(下面我称之为大哥)。

错误思路:

for (int i = 0; i < n; i++)
{cin >> a;if (book[a] == 0)	//如果没有标记过{if (book[a - 1] == 0 && book[a + 1] == 0)	//单独作为大哥{book[a] = 2;prime.insert(a);}else if (book[a - 1] == 2 && book[a + 1] == 0)	//在其他大哥之前{book[a - 1] = 1;book[a] = 2;prime.erase(a - 1);prime.insert(a);}else if(book[a - 1] == 0 && book[a + 1] != 0)  //接在屁股后面,不管他book[a] = 1;cout << a << " ";	//没标记过,说明之前无值,直接输出}else //之前标记过{int bro = getPrime(a);	//找到大哥book[bro + 1] = 2;		//更新大哥book[bro] = 1;prime.erase(bro);prime.insert(bro + 1);cout << bro + 1 << " ";	//输出新大哥}
}

上面的思路我觉得问题在于情况的讨论,而且大数据下也无法验证其准确性。还是老老实实用并查集吧。

什么时候用并查集?当你需要大哥的时候。思路和上面类似,值得注意的是,因为本题的集合是线段,而不是图,所以join函数根本没用,但是为了让大家对并查集的整体认知,还是写在代码中,可以自行删除。

还有就是需要一定程度上进行优化。

AC:

#include <iostream>
using namespace std;// 其实在我写第一个set的时候,就已经有种超级熟悉的感觉了,并查集,找大哥const int N = 1e6 + 3;
int n;
int pre[N];void init()
{for (int i = 0; i <= N; i++)	pre[i] = i;
}int find(int a)
{/*  会超时,这里优化一下find,让她直接指向大哥while (pre[a] != a)a = pre[a];return a;*/int root = a;while (pre[root] != root)	root = pre[root];int fa = pre[a];while (fa != root){pre[a] = root;a = fa;fa = pre[a];}return root;
}//join可以删除
void join(int a, int b)
{int fa = find(a);int fb = find(b);if (fa != fb)	pre[fa] = fb;
}int main()
{init();cin >> n;int a;for (int i = 0; i < n; i++){cin >> a;a = find(a);cout << a << " ";pre[a] = a + 1;}return 0;
}

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

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

相关文章

恶劣天气下的车辆探测:多方关注 多模态融合方法

摘要 在自动驾驶汽车技术领域&#xff0c;多模式车辆检测网络(MVDNet)代表了一个重大的飞跃&#xff0c;特别是在具有挑战性的天气条件下。本文主要通过集成多头关注层对MVDNet进行增强&#xff0c;旨在改进其性能。MVDNet模型中集成的多头关注层是一个关键的改进&#xff0c;…

民国漫画杂志《时代漫画》第14期.PDF

时代漫画14.PDF: https://url03.ctfile.com/f/1779803-1247458399-6732ac?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

java+ vue.js+uniapp一款基于云计算技术的企业级生产管理系统,云MES源码 MES系统如何与ERP系统集成?

java vue.jsuniapp一款基于云计算技术的企业级生产管理系统&#xff0c;云MES源码&#xff0c;MES系统如何与ERP系统集成&#xff1f; MES系统&#xff08;制造执行系统&#xff09;与ERP系统&#xff08;企业资源规划系统&#xff09;的集成可以通过多种方式实现&#xff0c;这…

探索亚马逊云科技技术课程:大模型平台与提示工程的应用与优化

上方图片源自亚马逊云科技【生成式 AI 精英速成计划】技术开发技能课程 前言 学习了亚马逊云科技–技术开发技能课程 本课程分为三个部分&#xff0c;了解如何使用大模型平台、如何训练与部署大模型及生成式AI产品应用与开发&#xff0c;了解各类服务的优势、功能、典型使用案…

苹果MacOS系统使用微软远程桌面连接Windows电脑桌面详细步骤

文章目录 前言1. 测试本地局域网内远程控制1.1 Windows打开远程桌面1.2 局域网远程控制windows 2. 测试Mac公网远程控制windows2.1 在windows电脑上安装cpolar2.2 Mac公网远程windows 3. 配置公网固定TCP地址 前言 日常工作生活中&#xff0c;有时候会涉及到不同设备不同操作系…

Vue3实战笔记(38)—粒子特效终章

文章目录 前言一、怎样使用官方提供的特效二、海葵特效总结 前言 官方还有很多漂亮的特效&#xff0c;但是vue3只有一个demo&#xff0c;例如我前面实现的两个页面就耗费了一些时间&#xff0c;今天记录一下tsparticles官方内置的几个特效的使用方法&#xff0c;一般这几个就足…

微信小程序---小程序文档配置(2)

一、小程序文档配置 1、小程序的目录结构 1.1、目录结构 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page 一个小程序主体部分由三个文件组成&#xff0c;必须放在项目的根目录 比如当前我们的《第一个小程序》项目根目录下就存在这三个文件&#xff1a; 1…

新媒体运营十大能力,让品牌闻达天下!

" 现在新媒体蓬勃发展&#xff0c;很多品牌都有新媒体运营这个岗位。新媒体运营好的话&#xff0c;可以提高公司品牌曝光、影响力。那新媒体运营具备什么能力&#xff0c;才能让品牌知名度如虎添翼呢&#xff1f;" 信息收集能力 在移动互联网时代&#xff0c;信息的…

单细胞分析(Signac): PBMC scATAC-seq 聚类

引言 在本教学指南中&#xff0c;我们将探讨由10x Genomics公司提供的人类外周血单核细胞&#xff08;PBMCs&#xff09;的单细胞ATAC-seq数据集。 加载包 首先加载 Signac、Seurat 和我们将用于分析人类数据的其他一些包。 if (!requireNamespace("EnsDb.Hsapiens.v75&qu…

JVM严镇涛版笔记【B站面试题】

前言 2023-06-19 18:49:33 出自B站 灰灰的Java面试 枫叶云链接&#xff1a;http://cloud.fynote.com/s/4976 JVM面试题大全 Lecturer &#xff1a;严镇涛 1.为什么需要JVM&#xff0c;不要JVM可以吗&#xff1f; 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译&#xff0c…

C语言 数组——计算最大值的函数实现

目录 计算最大值 计算最大值的函数实现 应用实例&#xff1a;计算班级最高分​编辑​编辑 返回最大值所在的下标位置 返回最大值下标位置的函数实现​编辑 一个综合应用实例——青歌赛选手评分​编辑​编辑​编辑​编辑​编辑 计算最大值 计算最大值的函数实现 应用实例&…

音视频开发4-补充 FFmpeg 开发环境搭建 -- 在windows 上重新build ffmpeg

本节的目的是在windows 上 编译 ffmpeg 源码&#xff0c;这样做的目的是&#xff1a;在工作中可以根据工作的实际内容裁剪 ffmpeg&#xff0c;或者改动 ffmpeg 的源码。 第一步 &#xff1a;下载&#xff0c; 安装&#xff0c;配置 &#xff0c;运行 msys64 下载 下载地址&…

【paper】基于分布式采样的多机器人编队导航信念传播模型预测控制

Distributed Sampling-Based Model Predictive Control via Belief Propagation for Multi-Robot Formation NavigationRAL 2024.4Chao Jiang 美国 University of Wyoming 预备知识 马尔可夫随机场&#xff08;Markov Random Field, MRF&#xff09; 马尔可夫随机场&#xff…

【Linux】使用AddressSanitizer分析内存非法使用问题

文章目录 1 为什么需要AddressSanitizer&#xff1f;2 如何使用AddressSanitizer3 AddressSanitizer的原理4 总结 1 为什么需要AddressSanitizer&#xff1f; Valgrind是比较常用的内存问题定位工具&#xff0c;既然已经有了Valgrind&#xff0c;为什么还需要AddressSanitizer…

java 通过 microsoft graph 调用outlook(三)

这次会添加一个Reply接口&#xff0c; 并且使用6.10.0版本 直接上代码 一&#xff0c; POM <!-- office 365 --><dependency><groupId>com.microsoft.graph</groupId><artifactId>microsoft-graph</artifactId><version>6.1…

域内 dcsync 权限维持

一、原理 DCSync 是域渗透中经常会用到的技术&#xff0c;其被整合在了 Mimikatz 中。在 DCSync 功能出现之前&#xff0c;要想获得域用户的哈希&#xff0c;需要登录域控制器&#xff0c;在域控制器上执行代码才能获得域用户的哈希。 Mimikatz的DCSync 功能&#xff1a; 该…

java8总结

java8总结 java8新特性总结1. 行为参数化2. lambda表达式2.1 函数式接口2.2 函数描述符 3. Stream API3.1 付诸实践 java8新特性总结 行为参数化lambda表达式Stream Api 1. 行为参数化 定义&#xff1a;行为参数化&#xff0c;就是一个方法接受多个不同的行为作为参数&#x…

harmony 文件上传

图片上传 1&#xff0c; 获取文件&#xff0c;这里指的是图片 在鸿蒙内部有一个API pick选择器&#xff0c;实现文件保存和文件选择的功能&#xff0c; 使用pick对象创建PhotoViewPicker实例 传入必要的参数&#xff0c;如选择图片的数量&#xff0c;和弹出窗口的位置&#xf…

【机器学习】前沿探索,如何让前端开发更加搞笑

在当今数字化时代&#xff0c;机器学习的崛起为前端开发带来了巨大的机遇和挑战。随着人工智能和数据科学的不断进步&#xff0c;前端工程师不再局限于传统的界面设计和交互体验&#xff0c;而是开始探索如何将机器学习技术融入到他们的工作中&#xff0c;以创造更加智能、个性…

面了一个程序员,因为6休1拒绝了我

人一辈子赖以生存下去的主要就考虑三件事&#xff0c;职业&#xff0c;事业&#xff0c;副业&#xff0c;有其1-2都是很不错的。如果还没到40岁&#xff0c;那不妨提前想下自己可能遇到的一些情况&#xff0c;提前做一些准备&#xff0c;未雨绸缪些。 今年整体就业大环境也一般…