信息学奥赛一本通 1463:门票

【题目链接】

ybt 1463:门票

【题目考点】

1. 哈希表

相关知识见:【模板:哈希表】信息学奥赛一本通 1456:【例题2】图书管理

【解题思路】

解法1:链地址法实现哈希表

数据范围限制为65536 K B 65536KB65536KB
哈希表中最多可能保存2 ∗ 10 6 2*10^62106个元素,平均每个元素占用内存65536 ∗ 1024 / ( 2 ∗ 10 6 ) ≈ 33 B 65536*1024/(2*10^6)\approx 33B655361024/(2106)33B
使用STL中的unordered_set类,内存开销比较大,当存储元素个数达到2 ∗ 10 6 2*10^62106时,容易发生内存超限。
因此本题必须手动实现哈希表。
开放地址法对内存空间需求较大,需要保证负载因子较小(一般为0.7)才可以降低哈希冲突的概率,因此表长会比存储的元素数量更大,有很多空间不能保存数据,对空间需求较高。
而链地址法的负载因子可以大于1,对内存空间需求相对较小,较为灵活。
参考【模板:哈希表】信息学奥赛一本通 1456:【例题2】图书管理中解法2可以以链地址法实现哈希表。
可以选择将哈希表写成类,或只是声明全局数组和函数来实现。

本题给定了初值a 0 = 1 a_0=1a0=1,以及递推公式( A ⋅ a i + a i m o d B ) m o d C (A\cdot a_i+a_i\bmod B)\bmod C(Aai+aimodB)modC,想要求出第一次出现重复项的编号。即当求出的值为a i a_iai时,如果a i a_iai在先前已经出现过,就输出i ii
如果答案超过2 ∗ 10 6 2*10^62106,就输出-1。
我们可以根据a aa序列的初始值和递推式,依次递推求出a aa序列的每一项,设其中的一项为d dd。注意A ⋅ a i A\cdot a_iAai这一步要在long long类型下进行计算。
当求出a i = d a_i=dai=d时,首先在哈希表中查找是否存在d dd

  • 如果哈希表中存在d dd,则输出i ii,结束程序。
  • 如果哈希表中不存在d dd,则将d dd插入哈希表。

循环次数为2 ∗ 10 6 2*10^62106,如果跳出了循环,则输出-1。

【题解代码】

解法1:链地址法实现哈希表

  • 写法1:写全局数组和函数实现哈希表,链表中结点地址为int类型
#include<iostream>#include<algorithm>usingnamespacestd;#defineN2000003structNode{intval;intnext;}node[N];intp,data[N];//data[i]:哈希值为i的单链表的第一个结点的地址intHash(intkey){returnkey%N;}voidinsert(intkey){inth=Hash(key),np=++p;node[np].val=key;node[np].next=data[h];data[h]=np;}intcount(intkey){inth=Hash(key);for(inti=data[h];i!=0;i=node[i].next)if(node[i].val==key)return1;return0;}intmain(){inta,b,c,d=1;cin>>a>>b>>c;insert(d);for(inti=1;i<=2000000;++i){d=((longlong)a*d+d%b)%c;if(count(d)==1){cout<<i;return0;}elseinsert(d);}cout<<-1;return0;}
  • 写法2:实现HashSet类,链表中结点地址为Node*类型
#include<bits/stdc++.h>usingnamespacestd;#defineN2000003structHash{unsignedoperator()(intkey){returnkey%N;}};template<classT,classHashFunc>structHashSet//开散列{structNode{T key;Node*next=nullptr;}node[N],*p=node,*data[N]={};HashFunc hash;voidinsert(T key){//头插法if(count(key)==1)//如果哈希表中已经存在key,则不插入return;inth=hash(key);Node*np=++p;np->key=key;;np->next=data[h];data[h]=np;}intcount(T key)//获取关键字key的个数{inth=hash(key);for(Node*i=data[h];i!=nullptr;i=i->next)if(i->key==key)return1;return0;}};HashSet<int,Hash>hs;intmain(){inta,b,c,d=1;cin>>a>>b>>c;hs.insert(d);for(inti=1;i<=2000000;++i){d=((longlong)a*d+d%b)%c;if(hs.count(d)==1){cout<<i;return0;}elsehs.insert(d);}cout<<-1;return0;}

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

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

相关文章

高速信号完整性视角下的USB3.0传输速度调优方案

以下是对您提供的博文《高速信号完整性视角下的USB3.0传输速度调优方案》进行 深度润色与结构重构后的专业级技术文章 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹 :语言自然、节奏松弛有致,像一位资深SI工程师在实验室白板前边画边讲; ✅ 摒弃模板化标题与…

Qwen-Image-Layered新手指南:从安装到运行全流程解析

Qwen-Image-Layered新手指南&#xff1a;从安装到运行全流程解析 摘要&#xff1a;Qwen-Image-Layered 是一个专注于图像图层化分解的轻量级工具&#xff0c;它能将单张输入图像智能拆解为多个独立可控的 RGBA 图层。这种结构天然支持高保真编辑——你可单独调整某一层的位置、…

YOLOv13损失函数三合一,分类定位更准确

YOLOv13损失函数三合一&#xff0c;分类定位更准确 在工业质检中漏检一颗微小螺丝、在自动驾驶场景里误判一个交通锥桶、在智慧零售系统中混淆两种相似商品——这些看似微小的误差&#xff0c;背后往往指向同一个技术瓶颈&#xff1a;传统目标检测模型的损失函数设计已难以支撑…

2024年AI语音应用趋势:Emotion2Vec+ Large开源模型部署入门必看

2024年AI语音应用趋势&#xff1a;Emotion2Vec Large开源模型部署入门必看 1. 为什么Emotion2Vec Large值得你今天就上手 你有没有想过&#xff0c;一段3秒的语音里藏着多少情绪密码&#xff1f;不是靠猜&#xff0c;而是用AI真正“听懂”——愤怒的紧绷、惊喜的上扬、疲惫的…

TurboDiffusion影视预演应用:分镜自动可视化生成实战

TurboDiffusion影视预演应用&#xff1a;分镜自动可视化生成实战 1. 为什么影视预演需要TurboDiffusion&#xff1f; 你有没有遇到过这样的情况&#xff1a;导演刚讲完一个分镜脚本&#xff0c;美术组要花半天画出概念图&#xff0c;动画师再花一天做动态预演&#xff0c;等所…

测试开机启动脚本镜像使用全攻略,收藏备用

测试开机启动脚本镜像使用全攻略&#xff0c;收藏备用 你是否遇到过这样的问题&#xff1a;写好了监控脚本、数据采集程序或自定义服务&#xff0c;却总在服务器重启后“失联”&#xff1f;每次都要手动启动&#xff0c;既费时又容易遗漏。别担心&#xff0c;这个名为“测试开…

科研党福音!PyTorch通用镜像助力论文复现实验

科研党福音&#xff01;PyTorch通用镜像助力论文复现实验 科研路上最怕什么&#xff1f;不是公式推导卡壳&#xff0c;不是实验设计反复修改&#xff0c;而是——环境配置失败、依赖冲突、CUDA版本不匹配、Jupyter内核启动报错……当别人已经跑通baseline模型时&#xff0c;你…

小白也能用!Qwen-Image-Layered图层拆分实战教程

小白也能用&#xff01;Qwen-Image-Layered图层拆分实战教程 你是否遇到过这样的困扰&#xff1a;一张精心设计的海报&#xff0c;想单独调整文字颜色却怕误伤背景&#xff1f;一个产品图里人物和背景粘连紧密&#xff0c;抠图后边缘毛糙、反复重试&#xff1f;或者想把旧照片…

如何保证输出质量?unet 1024分辨率最佳实践

如何保证输出质量&#xff1f;UNet 1024分辨率最佳实践 你是不是也遇到过这样的情况&#xff1a;明明选了高清参数&#xff0c;生成的卡通人像却糊成一片&#xff1f;边缘发虚、细节丢失、色彩断层……不是模型不行&#xff0c;而是没用对“打开方式”。今天不讲原理、不堆参数…

FSMN VAD云服务部署:AWS/Aliyun实例配置推荐

FSMN VAD云服务部署&#xff1a;AWS/Aliyun实例配置推荐 1. FSMN VAD模型简介与技术价值 FSMN VAD是阿里达摩院FunASR项目中开源的语音活动检测&#xff08;Voice Activity Detection&#xff09;模型&#xff0c;由科哥完成WebUI二次开发并封装为开箱即用的服务系统。它不是…

一键启动YOLOv13,本地化服务让部署更高效

一键启动YOLOv13&#xff0c;本地化服务让部署更高效 你是否经历过这样的场景&#xff1a;刚下载完YOLOv13的代码仓库&#xff0c;却卡在pip install -r requirements.txt上整整二十分钟&#xff1f;明明显卡是RTX 4090&#xff0c;训练脚本却报错“CUDA out of memory”&…

对防火墙进行认证配置

目前有一防火墙连接着外网环境&#xff0c;企业内部网络以及服务器网络&#xff0c;先对其进行相关认证配置以及安全策略的配置&#xff0c;网络拓扑图如下所示。一、基础配置1、对交换机SW2和防火墙的接口以及基本设备的IP进行配置设备接口VLAN接口类型SW2GE0/0/2VLAN 10Acces…

亲测gpt-oss-20b-WEBUI镜像:AI对话机器人部署全过程分享

亲测gpt-oss-20b-WEBUI镜像&#xff1a;AI对话机器人部署全过程分享 1. 这不是Ollama&#xff0c;是开箱即用的网页版GPT-OSS体验 你有没有试过这样的场景&#xff1a;刚听说一个新模型&#xff0c;兴致勃勃想跑起来&#xff0c;结果卡在环境配置、依赖安装、CUDA版本冲突上&…

GPEN与Photoshop插件集成:创意设计工作流优化

GPEN与Photoshop插件集成&#xff1a;创意设计工作流优化 你有没有遇到过这样的情况&#xff1a;客户发来一张几十年前泛黄模糊的老照片&#xff0c;要求修复成高清人像用于印刷海报&#xff1b;或者电商团队急需一批清晰自然的模特图&#xff0c;但原始素材全是低分辨率、带噪…

下一代Embedding模型展望:Qwen3技术路线实战解读

下一代Embedding模型展望&#xff1a;Qwen3技术路线实战解读 1. Qwen3-Embedding-0.6B&#xff1a;轻量高效的新选择 你可能已经用过不少文本嵌入模型——有的跑得慢、有的占内存大、有的中文效果一般&#xff0c;还有的调用起来步骤繁琐。而Qwen3-Embedding-0.6B&#xff0c…

新手必看:Qwen3-Embedding-0.6B安装与调用全解析

新手必看&#xff1a;Qwen3-Embedding-0.6B安装与调用全解析 你是不是也遇到过这些问题&#xff1a; 想给自己的搜索系统加语义理解能力&#xff0c;却卡在向量模型部署上&#xff1b; 听说Qwen3 Embedding效果很好&#xff0c;但不知道从哪一步开始跑通&#xff1b; 试了几个…

USB2.0传输速度波动问题的示波器诊断方法:从零实现

以下是对您提供的博文内容进行 深度润色与结构重构后的专业级技术文章 。整体风格更贴近一位资深嵌入式系统工程师在技术社区中自然分享的口吻——逻辑清晰、语言精炼、有实战温度、无AI腔调,同时大幅增强可读性、教学性与工程落地感。全文已去除所有模板化标题(如“引言”…

5分钟上手Open-AutoGLM:手机AI助手一键部署指南

5分钟上手Open-AutoGLM&#xff1a;手机AI助手一键部署指南 你有没有想过&#xff0c;对着手机说一句“帮我订明天上午10点去上海虹桥的高铁票”&#xff0c;手机就自动打开12306、登录账号、筛选车次、完成下单&#xff1f;这不是科幻电影——Open-AutoGLM 已经让这件事在真实…

长文本实体识别内存不足?Qwen3-0.6B滑动窗口解法

长文本实体识别内存不足&#xff1f;Qwen3-0.6B滑动窗口解法 [【免费下载链接】Qwen3-0.6B Qwen3 是阿里巴巴于2025年4月开源的新一代通义千问大语言模型系列&#xff0c;涵盖6款密集模型与2款MoE架构模型&#xff0c;参数量从0.6B至235B。Qwen3-0.6B在保持轻量级部署优势的同…

AI内容审核新方案:SenseVoiceSmall笑声/掌声识别部署教程

AI内容审核新方案&#xff1a;SenseVoiceSmall笑声/掌声识别部署教程 1. 为什么需要笑声和掌声识别&#xff1f; 你有没有遇到过这样的场景&#xff1a; 社交平台每天收到上万条用户上传的短视频&#xff0c;后台需要快速判断哪些视频里有异常笑声、刻意煽动性掌声&#xff…