励志用更少的代码做更高效的表达


题目描述
给定一个长度为N 的数组A = [A1, A2,…,AN],数组中有可能有重复出现的整数。
现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改A2,A3,…, AN。
当修改Ai 时,小明会检查Ai 是否在A1~ Ai-1 中出现过。
如果出现过,则小明会给Ai 加上1 ;
如果新的Ai 仍在之前出现过,小明会持续给Ai 加1 ,直到Ai 没有在A1~Ai-1中出现过。
当AN 也经过上述修改之后,显然A数组中就没有重复的整数了。
现在给定初始的A 数组,请你计算出最终的A 数组。

输入
第一行包含一个整数N(1<=N<=100000)
第二行包含N个整数A1,A2,…,AN(1<=Ai<=1000000)

输出
输出N个整数,依次是最终的A1,A2,…,AN

样例输入
5
2 1 1 3 4

样例输出
2 1 3 4 5


用常规的数组暴力解法大概能得80%的分

也可以用并查集来解。只要实现其查找功能即可


代码展示

#include<bits/stdc++.h>
using namespace std;//并查集
int f[1000001];
int getf(int x) {if (x == f[x])return x;return f[x] = f[getf(f[x])];
}int main() {for (int i=1;i<1000001;i++)f[i] = i;int n, t;cin >> n;while (n--){cin >> t;t = getf(t);cout << t;f[t] = getf(t + 1);if (n >= 1)cout << " ";}
return 0; }

21行代码AC_ 试题H: 修改数组【解题报告】相关推荐

  1. 22行代码AC_试题 历届试题 油漆面积【解题报告】

    励志用更少的代码做更高效的表达 X星球的一批考古机器人正在一片废墟上考古. 该区域的地面坚硬如石.平整如镜. 管理人员为方便,建立了标准的直角坐标系. 每个机器人都各有特长.身怀绝技.它们感兴趣的内容 ...

  2. 26行代码AC_试题 历届试题 日期问题 | 第八届蓝桥杯B组第七题

    问题描述   小明正在整理一批历史文献.这些历史文献中出现了很多日期.小明知道这些日期都在1960年1月1日至2059年12月31日.令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的, ...

  3. 21行代码AC_标题 Excel地址 2017年蓝桥杯真题(解题报告+通法)

    励志用更少的代码做更高效的表达 题目描述 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, B ...

  4. 21行代码AC_【蓝桥杯】承压计算(解题通法+技巧)

    励志用更少的代码做更高效的表达 问题描述 X星球的高科技实验室中整齐地堆放着某批珍贵金属原料.   每块金属原料的外形.尺寸完全一致,但重量不同. 金属材料被严格地堆放成金字塔形.   7 5 8 7 ...

  5. 15行代码AC_ 【蓝桥杯】兴趣小组(解题报告+思考)

    励志用更少的代码做更高效的表达 问题描述: 为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组 (以下称A组,B组,C组). 每个小组的学生名单分别在[A.txt],[B.txt]和[C.tx ...

  6. 18行代码AC_排序 HDU - 1106(sstream简单解法)

    励志用少的代码做高效表达. Problem describe 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应 ...

  7. 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告

    题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...

  8. 真香!8 行代码搞定最大子数组和问题

    作者 | 码农的荒岛求生 来源 | 码农的荒岛求生 今天给大家带来一道极其经典的题目,叫做最大和子数组,给定一个数组,找到其中的一个连续子数组,其和最大. 示例: 输入: nums = [-2,1,- ...

  9. 24行代码AC_蓝桥杯2019省赛 试题 D: 数的分解

    问题描述 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+10 ...

最新文章

  1. 不会自动化UI测试?不会编程?没问题,会造句就行!
  2. C语言实用算法系列之DOS传参“加减乘除计算器”
  3. Microsoft Visual Studio 无法启动程序“路径啪啦啪啦“. 系统找不到指定的文件。
  4. js match函数注意
  5. 淘宝分布式NOSQL框架:Tair
  6. 通过OAuth方式与docker hub v2 API交互
  7. C/C++ 取整函数
  8. cartographer原理简述
  9. matlab 读取tiff文件
  10. linux ap中继模式,小米AIoT AX3600 WiFi 6有线中继模式(AP模式)自定义局域网LAN IP地址...
  11. 2022搜狐校园算法大赛推荐赛道Rank2方案分享
  12. 给跪了!见过最高逼格的项目总结报告!
  13. 影响Google Adsense广告单价高低的因素分析获取更高的收入
  14. 【微信小程序】实现简单轮播图效果
  15. u盘数据恢复,教你轻松搞定!
  16. 百度想成为伟大的金融科技公司?太迟了
  17. ICPR 2020 | 论文阅读 ——SyNet: An Ensemble Network for Object Detection in UAV Images
  18. leetcode报错:member access within null pointer of type struct ListNode
  19. 2023网盘扩容技术
  20. 单选按钮、复选框、下拉框的回显

热门文章

  1. Python的re.match()和re.search()的使用和区别
  2. 查询速度提升200倍,ClickHouse到底有多快?
  3. 大话ion系列(四)
  4. 【今晚9点】:对话袁荣喜——一名C程序员的打怪之路
  5. 新的Google Lyra音频编解码器对实时视频流意味着什么?
  6. 基于Licode的WebRTC全球分布式架构
  7. 梁俊斌:音频技术可以延展众多应用场景
  8. 我在 MySQL 的那些年
  9. termcap - 终端功能数据库详解
  10. 一文彻底了解Logstash