单链表式并查集

在这里插入图片描述
在这里插入图片描述
如果用暴力算法的话,那么会直接超时,我们要学会用并查集去记录下一个空闲的位置

#include<bits/stdc++.h>
using namespace std;const int N = 100005;int n;
int fa[N];
int a[N];int find(int x) {if (fa[x] == x) {return x;}fa[x] = find(fa[x]);return fa[x];
}void ini() {for (int i = 0; i < N; i++) {fa[i] = i;}
}int main() {int ans = 0;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}ini();for (int i = 1; i <= n; i++) {int p = find(a[i]);if (p == a[i]) {  // 如果空闲位置和当前是一样的fa[p] = find(p + 1);  // 指向下一个空闲位置}else {// 不是一样的说明有重复ans += p - a[i];a[i] = p;  // 更新数量fa[p] = find(p + 1);}}//cout << ans << endl;for (int i = 1; i <= n; i++) {cout << a[i] << " ";}return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;const int N = 200005;#define  int long longint n;
int fa[N];
int a[200005];int find(int x) {if (fa[x] == x) {return x;}fa[x] = find(fa[x]);return fa[x];
}void ini() {for (int i = 0; i < N; i++) {fa[i] = i;}
}signed main() {int ans = 0;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}ini();for (int i = 1; i <= n; i++) {int p = find(a[i]);if (p == a[i]) {  // 如果空闲位置和当前是一样的fa[p] = find(p + 1);  // 指向下一个空闲位置}else {// 不是一样的说明有重复ans += p - a[i];a[i] = p;  // 更新数量fa[p] = find(p + 1);}}cout << ans << endl;for (int i = 1; i <= n; i++) {cout << a[i] << " ";}return 0;
}

我们还可以换

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N=200005;
ll a[N]={0},b[N]={0},n,t,ans=0;
map<int,int> fa;
int find(int i){if(!fa.count(i)) return i;else return fa[i]=find(fa[i]);
}
int main(){scanf("%lld",&n);for(int i=0;i<n;i++){scanf("%lld",&a[i]);}for(int i=0;i<n;i++){t=find(a[i]);fa[t]=t+1;ans+=t-a[i];a[i]=t;}printf("%lld\n",ans);for(int i=0;i<n;i++) printf("%lld ",a[i]);return 0;
}

在这里插入图片描述
这个题目没什么思路,很多次的修改操作,还有可能会有重叠
我们直接从第m次开始,用fa[x]记录下一个空闲的位置,每一个馒头只刷一次颜色

#include<bits/stdc++.h>
using namespace std;const int N = 1e6 + 5;
typedef long long ll;
int n, m,p,q;ll fa[N];
ll a[N];void ini() {for (int i = 0; i < N; i++) {fa[i] = i;}
}int find(int x) {if (fa[x] == x) return x;fa[x] = find(fa[x]);return fa[x];
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> n >> m >> p >> q;ini();while (m) {int ll = (m * p + q)%n + 1;int rr = (m * q + p) % n + 1;int l = min(ll, rr);int r = max(ll, rr);int x = find(l);while (x <= r) {a[x] = m;fa[x] = find(x + 1);x = find(x);}m--;}for (int i = 1; i <= n; i++)cout << a[i] << '\n';cout << flush;return 0;
}

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

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

相关文章

Etcd集群选举细节

日志级别 在 etcd 集群中&#xff0c;领导者选举是 Raft 协议的一部分&#xff0c;用于在当前领导者失败或无法与集群中的其他节点通信时选出新的领导者。以下是您提供的日志中与领导者选举相关的一些关键条目&#xff0c;以及对它们的详细说明&#xff1a; 节点失去领导者&am…

支付时,中国网联结算与中国银联结算的区别与联系

随着电子商务和互联网支付的快速发展&#xff0c;中国的支付清算市场也呈现出前所未有的繁荣景象。在这个大背景下&#xff0c;中国网联与中国银联作为两大支付清算机构&#xff0c;各自扮演着重要的角色。本文将对两者的区别和联系进行深入探讨&#xff0c;以期对读者有更全面…

网盘应用:桌面端界面欣赏,这个赛道容不下小玩家。

网盘&#xff08;Cloud Storage&#xff09;是一种云存储服务&#xff0c;允许用户在互联网上存储、管理和共享文件。它提供了一个在线的虚拟硬盘&#xff0c;用户可以通过网络将文件上传到云端&#xff0c;并随时随地访问和管理这些文件。 阿里云盘

办公类的Erp全流程管理系统有哪些靠谱的?

不知不觉&#xff0c;跟公司老板创业开始已经5年有余&#xff0c;感觉部门墙越来越厚。 财务跟业务经常开始漫长的对账过程&#xff0c;时不时HR也会牵涉进来&#xff0c;对销售团队进行考核结果确认&#xff0c;每个业务的催账任务也得最终落到实处。 老板早就对这样的状况深…

二、双fifo流水线操作——verilog练习与设计

文章目录 一、案例分析二、fifo_ctrl模块设计2.1 波形设计&#xff1a;2.2 代码实现2.2.1 fifo_ctrl2.2.2 顶层文件top_fifo_ctrl&#xff08;rx和tx模块省略&#xff09;2.2.3 仿真文件tb_fifo_ctrl 2.3波形仿真 一、案例分析 案例要求&#xff1a;写一个 fifo 控制器&#x…

我独自升级崛起加速器推荐 我独自升级免费加速器

近期&#xff0c;《我独自升级》这部动画凭借爆棚的人气&#xff0c;在各大平台上掀起了一阵观看热潮&#xff0c;其影响力不容小觑。借此时机&#xff0c;韩国游戏巨头网石集团敏捷响应&#xff0c;顺势推出了同名游戏《我独自升级&#xff1a;ARISE》&#xff0c;为粉丝们搭建…

【北京迅为】《iTOP-3588开发板快速烧写手册》-第9章ubuntu系统下升级固件

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

如何将pdf文件换成3d模型?---模大狮模型网

PDF文件是一种广泛用于文档传输和共享的格式&#xff0c;但在某些情况下&#xff0c;我们可能希望将其中的内容转换为更具交互性和视觉效果的3D模型。本文将介绍如何将PDF文件转换为3D模型&#xff0c;为您展示实现这一想象的步骤。 选择合适的PDF文件&#xff1a; 首先&#…

​「Python绘图」绘制五角星

python 绘制五角星 一、预期结果 二、核心代码 import turtle print("开始绘制五角星")# 设置画布尺寸 # screen turtle.Screen() # screen.setup(width500, height500)# 创建Turtle对象 pen turtle.Turtle() pen.shape("turtle")# 移动画笔到起始位置 …

为什么说RK3562可以碾压PX30?

在如今的科技市场中&#xff0c;处理器的性能直接决定了设备的运行速度和用户体验。今天&#xff0c;我们将对比瑞芯微旗下的两款处理器&#xff1a;PX30与RK3562。RK3562比PX30的性价比究竟高在哪里&#xff1f; PX30 瑞芯微PX30是一款高性能的四核应用处理器&#xff0c;专…

【excel】统计单元格内数字/字符串的数量

文章目录 一、问题二、步骤&#xff08;一&#xff09;将A1中的数字分解出来&#xff0c;在不同的单元格中显示&#xff08;二&#xff09;统计每个数字出现的个数&#xff08;三&#xff09;去重 三、尾巴 一、问题 单元格中有如下数值&#xff1a;12345234534545&#xff0c…

微信社交平台的未来展望,2024微信的重点发展趋势

WeChat社交媒体平台概述 截至2024年&#xff0c;WeChat的月活跃用户超过13亿&#xff0c;预计到今年年底&#xff0c;WeChat用户将超过16.7亿。当然&#xff0c;全球WeChat用户数量的数字表明&#xff0c;该应用程序在世界上最受欢迎的应用程序中排名第五&#xff08;仅次于Fa…

JAVA语言开发的:一套智慧校园平台主要由哪些系统组成、又有哪些前景呢?让我们一起来看一看

▶技术架构&#xff1a;后端&#xff1a;Java 框架&#xff1a;springboot 前端页面&#xff1a;vue 小程序&#xff1a;小程序原生开发 ▶电子班牌&#xff1a;Java Android 源码有演示&#xff0c;自主研发&#xff0c;官方正版授权&#xff0c;联系客服咨询&#xff0…

基于Linux中的 进程相关知识 综合讲解

目录 一、进程的基本概念 二、pid&#xff0c;ppid&#xff0c;fork函数 三、进程的状态讲解 四、进程的优先级 五、完结撒❀ 一、进程的基本概念 概念&#xff1a; ● 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等 ● 内核观点&#xff1a;担当…

高阶RAG-ReRank

1.背景-现RAG存在的问题 现在很明显&#xff0c;仅仅依靠向量检索技术不足以开发 RAG 应用程序&#xff0c;尤其是在生产环境中部署。 以下为案例&#xff1a; 关键词搜索容易返回不回答问题的结果稠密检索容易返回不正确的结果 实际RAG检索中也有很多类型问题&#xff0c;…

「活动预告」PolarDB走进青岛,邀请您一起畅游琴岛山海春韵,共话数据生态创新

预告 由PolarDB开源社区、海信聚好看、PostgreSQL中文社区共同发起的《开源数据库沙龙》&#xff0c;将于青岛举办。 时间地点 时间&#xff1a;2024年5月17日 13:00 地点&#xff1a;青岛市市南区香港中路17号 市政府3期『城市会客厅』 活动亮点 本次嘉宾汇聚海信、阿里…

如何缩小图片大小kb?6个压缩图片大小的软件教你快速压缩

如何缩小图片大小kb&#xff1f;6个压缩图片大小的软件教你快速压缩 当需要缩小图片的大小&#xff08;KB&#xff09;时&#xff0c;可以利用一系列专门设计的工具和软件来帮助完成这一任务。这些工具可以有效地减小图片的文件大小&#xff0c;而又不会明显降低图片的质量。以…

SARscape操作:GF3 数据预处理

1、设置 Prefrences 参数 点击 SARscape->Preferences->Preferences specific&#xff0c;弹出如下图所示的对话框&#xff1b; 点击 Load Preferences&#xff0c;在弹出的菜单栏中选择适用于GF3影像处理的 MR(between 10m and 30m) 模式&#xff1b; 点击 General p…

CFETS系统介绍

CSTP服务是什么 CSTP&#xff08;CFETS Straight Through Process&#xff09;是交易中心为外汇市场提供的数据直通式处理接口服务。用户通过标准式接口将本方交易数据直接从交易中心的服务器接收下来&#xff0c;根据需要对数据进行处理并导入到中、后台系统。其基本功能包括…

解析直播美颜SDK:计算机视觉在实时视频中的应用

今天&#xff0c;小编将带大家深入探讨直播美颜SDK的原理、应用及其在实时视频中的重要性。 一、直播美颜SDK的原理 直播美颜SDK的核心原理是基于计算机视觉技术&#xff0c;通过识别人脸、肤色、眼睛、嘴巴等关键特征点&#xff0c;对视频图像进行实时处理。其主要包括以下几…