当前位置: 首页 > news >正文

PAT-Hashing (25)

题目来源

Hashing (25)

题面点击链接自行查看

注意点

  • 哈希探测用正向平方探测(二次探测),通常的平方探测是先加后减,这里只用正增量就不用减

思路简介

素数筛+二分查找确定表长
之后模拟哈希平方探测即可

当然直接一个一个找素数也是可以的,你问我为什么用素数筛,当然是因为帅
素数筛不难写,同时效率更高
个人觉得如果了解素数筛的话其实写代码的难度跟朴素找素数差不多
当然考试的时候会写朴素找就行了

遇到的问题

  1. 哈希平方探测的增量上限是表长table.size(),超过表长的话,取模后相当于再次从 0 开始增加

代码

/** * https://www.nowcoder.com/pat/5/problem/4308 * 找素数 */#include<bits/stdc++.h>usingnamespacestd;constintN=1e4+100;intk=0;//欧拉筛记录素数的个数vector<int>prime(N,0),vis(N,0);voidEuler_sieve(){for(inti=2;i<N;++i){if(!vis[i])prime[k++]=i;for(intj=0;j<k&&i*prime[j]<N;++j){vis[prime[j]*i]=1;//筛掉合数if(!(i%prime[j]))break;/* i是prime[j]的倍数时 说明后面的含有prime[j]的因子合数已经被筛选掉 不用重复筛选,退出 */}}}voidsolve(){Euler_sieve();intMsize,n;cin>>Msize>>n;intt=lower_bound(prime.begin(),prime.begin()+k,Msize)-prime.begin();Msize=prime[t];vector<int>hash(Msize,0);for(inti=0;i<n;++i){intk,j;cin>>k;for(j=0;j<Msize;++j){intpos=(k+j*j)%Msize;if(hash[pos])continue;hash[pos]=1;cout<<pos;break;}if(j==Msize)cout<<'-';if(i!=n-1)cout<<' ';}}intmain(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);//fstream in("in.txt",ios::in);cin.rdbuf(in.rdbuf());intT=1;//cin>>T;while(T--){solve();}return0;}
http://www.cnnetsun.cn/news/1367466.html

相关文章:

  • Hunyuan-MT-7B实战:如何用Chainlit前端快速调用翻译服务
  • 探索未来3D建模的新可能:Blackjack——轻量级的程序化建模工具
  • OpenSpeedy:重新定义游戏时间流速的技术突破
  • CSVtoTable错误排除指南:解决常见问题的7个有效方法
  • Ansys Comsol 力磁耦合仿真,包括直接耦合与间接耦合方式,模拟金属磁记忆检测以及压磁...
  • 《认知准晶体的五重对称性验证:人类创造性思维与AI生成内容的结构对比》(沙地实验)
  • DeepSeek-OCR-2企业级OCR方案:支持批量上传+API调用部署教程
  • AWS Lambda Rust运行时的高级特性:流式响应、并发处理与优雅关闭
  • Apache NuttX社区贡献指南:如何参与开源实时操作系统开发
  • nodejs+vue基于springboot的课外学习小组任务活动平台
  • Ubuntu 20.04 下彻底卸载与升级 Dotnet 环境的完整指南
  • MinIO+Docker实战:5分钟搭建私有S3存储并集成Python客户端
  • React Native Typography 密集与Tall脚本支持:全面解决中文排版难题
  • Destiny核心原理:有向图与分形树在文件组织中的应用
  • # 发散创新:用Python自动化实现分子动力学模拟中的自由能计算在计算化学领域,**自由能(
  • 保姆级教程:在RTX 4090上从零部署PP-UIE大模型(含CUDA12.1配置)
  • AI辅助开发新体验:在快马平台中利用qoder进行智能代码重构与优化
  • OnlyOffice Docker部署避坑指南:从零到生产环境的完整配置流程
  • React Native Typography 与 styled-components 集成:现代React Native开发实战
  • Modularization-examples中的虚拟文件系统:抽象层设计与实现详解
  • Ruoyi+WebSocket实战:如何绕过安全配置实现即时通讯功能
  • VR消防安全学习机|沉浸式体验守护生命安全的新方式
  • springboot基于vue框架和协同过滤算法的图书推荐系统设计与实现
  • 基于卡尔曼滤波与ESKF算法的三维组合导航技术:MATLAB源码实现与性能对比分析
  • 三阶线性自抗扰控制器:Simulink仿真模型,动态响应迅速,参数调节方便,已封装可拖拽使用...
  • 5款强力游戏修改工具:轻松定制GameMaker游戏内容
  • Bidili Generator镜像免配置:内置CUDA 12.1+PyTorch 2.3+Xformers全栈环境
  • 保姆级教程:AI万能分类器从部署到实战,零代码实现智能分类
  • 深入Linux V4L2主从设备通信机制:从Camera Host控制器到Sensor的完整数据流分析
  • 【2024最新】Dify v0.9+ Multi-Agent深度适配指南:兼容LangChain 0.2、支持自定义Router与动态Tool注册,仅限首批内测用户掌握的6项隐藏能力