手写哈希(实现简单的加数、查询)
题目:
有很多货物,有n个操作(0<= n <= 1e6)
加数操作:将输入的编号为x的货物标记
查询操作:查询输入的编号为x的货物是否被标记
思路:
这个题目还是比较简单的,但是想尝试一下哈希算法,手写哈希最重要的还是要处理好冲突问题。
代码:
#include <bits/stdc++.h> #define inf 0x3f3f3f3f #define FRE() freopen("in.txt", "r", stdin) #define FRO() freopen("out.txt", "w", stdout)using namespace std; typedef long long ll; const int maxn = 1e6+10; const int MOD = 1e6+7; int mp[maxn];void addNum(int x) {int t = x;x = x%MOD;while(true){if(!mp[x]){mp[x] = t;return;}if(mp[x] != t)//处理冲突x = (x+1)%maxn;else return;} }bool query(int x) {int t = x;x = x%MOD;while(true){if(!mp[x]) return false;if(mp[x]!=t)x = (x+1)%maxn;else return true;} }int main() {int n;scanf("%d",&n);while(n--){int o,x,idx;scanf("%d%d",&o,&x);if(o==0){addNum(x+1);}else{if(query(x+1)) printf("yes\n");else printf("no\n");}}return 0; }
转载于:https://www.cnblogs.com/sykline/p/10959254.html
手写哈希(实现简单的加数、查询)相关推荐
- 详解哈希数据结构,手写哈希表
哈希表,终于姗姗来迟了. 本文系统讲解了哈希表数据结构的相关概念,并以HashMap为案例讲解一下它与普通哈希表的不同点,最后也手写一个简易的哈希表. 所以通过本文,我希望读者们能对哈希表有一个清楚的 ...
- python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)
1.前言 版本:Python3.6.1 + PyQt5 + SQL Server 2012 以前一直觉得,机器学习.手写体识别这种程序都是很高大上很难的,直到偶然看到了这个视频,听了老师讲的思路后,瞬 ...
- 手写Java的字符串简单匹配方法IndexOf()
简单的字符串模式匹配算法,可使用KMP进行优化 /*** @param s1 母串* @param s2 子串* @return*/public static int myIndexOf(String ...
- 手写原生js实现简单计算器的功能
话不多说 直接看图片 其实核心思想 就是用了一个eval 函数 里面可以解析带运算符的字符串 但是一定要吧除号和乘号替换成代码里的* 和/ 其他就没有什么了 <!DOCTYPE html> ...
- mysql异步查询 java_java 手写并发框架(一)异步查询转同步的 7 种实现方式
序言 本节将学习一下如何实现异步查询转同步的方式,共计介绍了 7 种常见的实现方式. 思维导图如下: 异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 比如业务开发中我们 ...
- 并发查询_java 手写并发框架(一)异步查询转同步的7种实现方式
序言 本节将学习一下如何实现异步查询转同步的方式,共计介绍了 7 种常见的实现方式. 思维导图如下: 思维导图 异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 比如业务 ...
- PYQT5+CNN(TensorFlow-keras)做一个简单的手写数字识别PC端图形化小程序
目录 前言 一.功能介绍 1.画板识别 2.图片识别 二.UI设计 1.整体设计思想 2.颜色设计 3.Logo 设计 4.按钮设计 三.算法介绍 1.图片预处理 2.数字分割和显示 3.识别算法 4 ...
- 基于PyTorch框架的多层全连接神经网络实现MNIST手写数字分类
多层全连接神经网络实现MNIST手写数字分类 1 简单的三层全连接神经网络 2 添加激活函数 3 添加批标准化 4 训练网络 5 结论 参考资料 先用PyTorch实现最简单的三层全连接神经网络,然后 ...
- [Kaggle] Digit Recognizer 手写数字识别(卷积神经网络)
文章目录 1. 使用 LeNet 预测 1.1 导入包 1.2 建立 LeNet 模型 1.3 读入数据 1.4 定义模型 1.5 训练 1.6 绘制训练曲线 1.7 预测提交 2. 使用 VGG16 ...
最新文章
- C++ RCSP智能指针简单实现与应用
- python环境准备_python开发环境准备
- 使用程序创建数据库表
- 漫话:如何给女朋友解释String对象是不可变的?
- java if经典程序_java经典程序(11-20)
- Oracle BCT(Block Change Tracking)与增量备份
- iText in Action 2nd5.2节(Events for basic building blocks)读书笔记
- 李洪强iOS开发之Foundation框架—结构体
- C++获取文本文件字节数的一个小方法
- FireBase Android版本测试
- ShaderJoy —— 最简单的 “RayTrace(光线追踪)” 的实现 【GLSL】
- Log4j2 漏洞检测工具清单
- IntelliJ Idea 下Png图片打开方式导致编码报错
- html5css重复径向渐变,CSS3怎么实现重复径向渐变效果
- Android Stidio修改桌面图标
- 关于Inter CPU的一些认识
- 认证资料大全(十三)------ Juniper Networks认证列表
- linux系统时间同步,硬件时钟和系统时间同步,时区的设置
- Mac音效增强软件:Boom 3D
- CISA考试内容有所改动
热门文章
- 【王道计组笔记】数制、编码、校验
- 中国语言文学研究是c吗c,中国语言文学研究杂志
- Linux debian live USB,用 Live Magic 制作 Debian Live 光盘
- 配置kubeconfig文件实现kubectl多集群切换
- Codeforces Round #757 (Div. 2)ABCD1
- HDOJ水题集合7:记忆化搜索
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling
- 【搞事】HTTP文件传输服务器搭建|网站文件分享|HFSxCHFS用法
- linux 会不会受到永恒之蓝漏洞,永恒之蓝漏洞复现(ms17-010)
- JAVA循环结构、break、continue、循环嵌套