牛客练习赛50 B tokitsukaze and Hash Table  并查集 链接https://ac.nowcoder.com/acm/contest/1080/B来源牛客网题目描述tokitsukaze有n个数需要按顺序把他们插入哈希表中哈希表的位置为0到n-1。插入的规则是刚开始哈希表是空的。对于一个数x在哈希表中如果(x mod n)的位置是空的就把x放在(x mod n)的位置上。如果不是空的就从(x mod n)往右开始找到第一个空的位置插入。若一直到n-1都不是空的就从位置0开始继续往右找第一个空的位置插入。因为哈希表总共有n个空位需要插入n个数所以每个数都能被插入。现在tokitsukaze想知道把这n个数按顺序插入哈希表后哈希表中的每个位置分别对应的是哪个数。输入描述:第一行包含一个正整数n(1≤n≤10^6)。 第二行包含n个非负整数x(0≤x≤10^9)这些数按从左到右的顺序依次插入哈希表。输出描述:输出一行n个数第i个数表示哈希表中位置为i所对应的数。(0≤i≤n-1)示例1输入4 1 2 6 5输出5 1 2 6说明插入1时1 mod 41是空的在位置1插入。 插入2时2 mod 42是空的在位置2插入。 插入6时6 mod 42不是空的找到下一个空的位置为3所以在位置3插入。 插入5时5 mod 41不是空的找到下一个空的位置为0所以在位置0插入。示例2输入4 3 0 7 11输出0 7 11 3说明插入3时3 mod 43是空的在位置3插入。 插入0时0 mod 40是空的在位置0插入。 插入7时7 mod 43不是空的找到下一个空的位置为1所以在位置1插入。 插入11时11 mod 43不是空的找到下一个空的位置为2所以在位置2插入。题解解法一用并查集维护空位。在位置x插入一个数后合并x和(x1)%n即可。要注意合并的时候(x1)%n必须当爹才能达到维护的效果。解法二用set维护所有空位每次lower_bound找到第一个可用空位即可。(可能会卡常)我用set写的代码连续交了5发有一发超时set的时间是并查集的两三倍。下边给出两种代码并查集代码#includebits/stdc.h using namespace std; typedef long long ll; const int maxn1e65; int father[maxn]; int ans[maxn]; int get(int x){ return xfather[x]?x:father[x]get(father[x]); } int main(){ int n; scanf(%d,n); for(int i1;in;i) father[i]i; for(int i1;in;i){ int x; scanf(%d,x); int yx%n; int fget(y); ans[f]x; int zget((f1)%n); father[f]z; } for(int i0;in;i) printf(%d ,ans[i]); return 0; }set代码#includebits/stdc.h using namespace std; typedef long long ll; const int maxn1e65; int a[maxn]; setint s; setint::iterator it; int main(){ int n; scanf(%d,n); for(int i0;in;i) s.insert(i); for(int i0;in;i){ int x; scanf(%d,x); int yx%n; its.lower_bound(y); if(its.end()) its.begin(); a[*it]x; s.erase(it); } for(int i0;in;i) printf(%d ,a[i]); return 0; }

相关新闻

最新新闻

高新技术塑厂实战:必优塑业依托销氪精准筛选渠道商、外贸客户,拓客效率大幅提升

高新技术塑厂实战:必优塑业依托销氪精准筛选渠道商、外贸客户,拓客效率大幅提升

国家统计局数据显示,近十年我国制造业利润总额虽整体保持增长,但增速波动明显,且多数年份利润率低于工业整体水平。以最新的11月制造业PMI指数为例,虽较上月微升0.2个百分点,却已是连续第二个月低于50%的荣枯线。这一数…

2026/7/28 18:57:03
为什么选择esptool:ESP芯片烧录与调试的终极指南

为什么选择esptool:ESP芯片烧录与调试的终极指南

为什么选择esptool:ESP芯片烧录与调试的终极指南 【免费下载链接】esptool Serial utility for flashing, provisioning, and interacting with Espressif SoCs 项目地址: https://gitcode.com/gh_mirrors/es/esptool 在物联网开发的世界里,你是否…

2026/7/28 18:57:03
基于行空板与PID算法实现恒温箱控制:从硬件连接到算法调优的完整教学实践

基于行空板与PID算法实现恒温箱控制:从硬件连接到算法调优的完整教学实践

1. 项目缘起:当开源硬件遇上经典教材实验 最近在整理浙江省编的初中信息技术教材时,发现了一个非常经典的探究性实验项目——“恒温箱实验”。这个实验要求学生设计一个能够自动维持恒定温度的小型环境,通常用于模拟孵化器、发酵箱等场景&…

2026/7/28 18:57:03
Mac VS Code快捷键(外接键盘)

Mac VS Code快捷键(外接键盘)

1. 多行注释:Win /2. 格式化代码:Shift Alt F

2026/7/28 18:57:03
14自由度整车模型在汽车动力学仿真中的应用与实践

14自由度整车模型在汽车动力学仿真中的应用与实践

1. 为什么需要14自由度整车模型在汽车工程领域,整车动力学建模一直是研发过程中的核心环节。14自由度整车模型之所以成为行业标准配置,是因为它完美平衡了计算精度与仿真效率这对矛盾体。传统简化模型(如4自由度或7自由度)虽然计算…

2026/7/28 18:57:03
【MyBatis笔记】09-一对多关系建表

【MyBatis笔记】09-一对多关系建表

多表操作表之间关系一对多关系建表原则表之间关系 一对一关系:一夫一妻。 一对多关系: 一个部门有多个员工,一个员工只能属于某一个部门。 一个班级有多个学生,一个学生只能属于一个班级。 多对多关系: 一个老师可以…

2026/7/28 18:52:03

月新闻