牛客练习赛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; }

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/23 4:54:42
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/24 14:25:52
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/24 14:49:33
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/23 8:01:38
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 14:28:18
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/24 11:09:24

日新闻

周新闻