题目:

有很多货物,有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

手写哈希(实现简单的加数、查询)相关推荐

  1. 详解哈希数据结构,手写哈希表

    哈希表,终于姗姗来迟了. 本文系统讲解了哈希表数据结构的相关概念,并以HashMap为案例讲解一下它与普通哈希表的不同点,最后也手写一个简易的哈希表. 所以通过本文,我希望读者们能对哈希表有一个清楚的 ...

  2. python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)

    1.前言 版本:Python3.6.1 + PyQt5 + SQL Server 2012 以前一直觉得,机器学习.手写体识别这种程序都是很高大上很难的,直到偶然看到了这个视频,听了老师讲的思路后,瞬 ...

  3. 手写Java的字符串简单匹配方法IndexOf()

    简单的字符串模式匹配算法,可使用KMP进行优化 /*** @param s1 母串* @param s2 子串* @return*/public static int myIndexOf(String ...

  4. 手写原生js实现简单计算器的功能

    话不多说 直接看图片 其实核心思想 就是用了一个eval 函数 里面可以解析带运算符的字符串 但是一定要吧除号和乘号替换成代码里的* 和/ 其他就没有什么了 <!DOCTYPE html> ...

  5. mysql异步查询 java_java 手写并发框架(一)异步查询转同步的 7 种实现方式

    序言 本节将学习一下如何实现异步查询转同步的方式,共计介绍了 7 种常见的实现方式. 思维导图如下: 异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 比如业务开发中我们 ...

  6. 并发查询_java 手写并发框架(一)异步查询转同步的7种实现方式

    序言 本节将学习一下如何实现异步查询转同步的方式,共计介绍了 7 种常见的实现方式. 思维导图如下: 思维导图 异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 比如业务 ...

  7. PYQT5+CNN(TensorFlow-keras)做一个简单的手写数字识别PC端图形化小程序

    目录 前言 一.功能介绍 1.画板识别 2.图片识别 二.UI设计 1.整体设计思想 2.颜色设计 3.Logo 设计 4.按钮设计 三.算法介绍 1.图片预处理 2.数字分割和显示 3.识别算法 4 ...

  8. 基于PyTorch框架的多层全连接神经网络实现MNIST手写数字分类

    多层全连接神经网络实现MNIST手写数字分类 1 简单的三层全连接神经网络 2 添加激活函数 3 添加批标准化 4 训练网络 5 结论 参考资料 先用PyTorch实现最简单的三层全连接神经网络,然后 ...

  9. [Kaggle] Digit Recognizer 手写数字识别(卷积神经网络)

    文章目录 1. 使用 LeNet 预测 1.1 导入包 1.2 建立 LeNet 模型 1.3 读入数据 1.4 定义模型 1.5 训练 1.6 绘制训练曲线 1.7 预测提交 2. 使用 VGG16 ...

最新文章

  1. C++ RCSP智能指针简单实现与应用
  2. python环境准备_python开发环境准备
  3. 使用程序创建数据库表
  4. 漫话:如何给女朋友解释String对象是不可变的?
  5. java if经典程序_java经典程序(11-20)
  6. Oracle BCT(Block Change Tracking)与增量备份
  7. iText in Action 2nd5.2节(Events for basic building blocks)读书笔记
  8. 李洪强iOS开发之Foundation框架—结构体
  9. C++获取文本文件字节数的一个小方法
  10. FireBase Android版本测试
  11. ShaderJoy —— 最简单的 “RayTrace(光线追踪)” 的实现 【GLSL】
  12. Log4j2 漏洞检测工具清单
  13. IntelliJ Idea 下Png图片打开方式导致编码报错
  14. html5css重复径向渐变,CSS3怎么实现重复径向渐变效果
  15. Android Stidio修改桌面图标
  16. 关于Inter CPU的一些认识
  17. 认证资料大全(十三)------ Juniper Networks认证列表
  18. linux系统时间同步,硬件时钟和系统时间同步,时区的设置
  19. Mac音效增强软件:Boom 3D
  20. CISA考试内容有所改动

热门文章

  1. 【王道计组笔记】数制、编码、校验
  2. 中国语言文学研究是c吗c,中国语言文学研究杂志
  3. Linux debian live USB,用 Live Magic 制作 Debian Live 光盘
  4. 配置kubeconfig文件实现kubectl多集群切换
  5. Codeforces Round #757 (Div. 2)ABCD1
  6. HDOJ水题集合7:记忆化搜索
  7. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling
  8. 【搞事】HTTP文件传输服务器搭建|网站文件分享|HFSxCHFS用法
  9. linux 会不会受到永恒之蓝漏洞,永恒之蓝漏洞复现(ms17-010)
  10. JAVA循环结构、break、continue、循环嵌套