门票

时间限制: 1 Sec  内存限制: 128 MB
提交: 26  解决: 2
[提交] [状态] [讨论版] [命题人:admin]

题目描述

RPK要带MSH去一个更加神秘的地方!
RPK带着MSH穿过广场,在第1618块砖上按下了一个按钮,在一面墙上随即出现了一个把手。RPK握住把手,打开了一扇石质大门。他们穿过悠长而芬芳的小道,走到了一扇象征时间的大门――“the gate of time”。
门上写着一个关于时间的谜题“承诺:____年”,RPK思考了一会,从容地用手指写下1万,这时,门开始发出闪光,MSH感觉到自己的心跳都快停止了。
门开了,眼前是一座美丽的神秘花园!
正当RPK和MSH准备进入的时候,突然出现了一个看门的老大爷QL。
QL:“你们干什么你们,还没买票呢!”
RPK突然想起来现金全拿去买蛋糕了,RPK很绅士的问:“能刷卡么?我身上没现金。”
QL:“没钱?那你们不能进去!”
RPK(汗):“……”
QL:“等等,我这有道不会的数学题,你解了我就让你们进去。”
(众人:“……”)
有一个数列{an},a0=1,ai+1=(A*ai+ai mod B)mod C,要求这个数列第一次出现重复的项的标号。
这点小问题当然难不倒数学bug男RPK了,仅凭心算他就得到了结果。

输入

一行3个数,分别表示A B C

输出

输出第一次出现重复项的位置,如果答案超过2000000 输出-1

样例输入

2 2 9

样例输出

4

提示

30%的数据A B C≤105
100%的数据 A B C≤109

试过set暴力,结果跑到90000左右的数据就T了,求教大佬之后才知道是用哈希做,建哈希表,选个适合的质数取模哈希,再暴力跑即可

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2200000;
const int modd = 2181271;
int hashh[maxn];
struct z
{int nextt,v;
}z[maxn];
bool countt(int tmp, int tmpp)
{for (int i = hashh[tmpp]; i; i = z[i].nextt)if (tmp == z[i].v)return 1;return 0;
}
int main()
{
//    freopen("in.txt", "r", stdin);int a,b,c;scanf("%d%d%d", &a, &b, &c);hashh[1] = z[1].v = 1;int tmp = 1;for (int i = 1; i <= 2000000; i++){tmp = ((ll) a * tmp + tmp % b) % c;int tmpp = tmp % modd;if (countt(tmp, tmpp)){printf("%d\n", i);return 0;}z[i + 1].v = tmp;z[i + 1].nextt = hashh[tmpp];hashh[tmpp] = i + 1;}puts("-1");return 0;
}

【哈希和哈希表】门票相关推荐

  1. 问题 I: 【哈希和哈希表】门票

    问题 I: [哈希和哈希表]门票 时间限制: 1 Sec  内存限制: 128 MB 提交: 43  解决: 6 [提交] [状态] [讨论版] [命题人:admin] 题目描述 RPK要带MSH去一 ...

  2. 提高篇 第二部分 字符串算法 第1章 哈希和哈希表

    浅谈字符串哈希_1264Ikaros的博客-CSDN博客_字符串哈希 图书管理-哈希表_handsome·wjc的博客-CSDN博客 字符串哈希 哈希表 - DTTTTTTT - 博客园 图书管理(L ...

  3. 不同表结构数据迁移_数据结构:哈希 哈希函数 哈希表

    写在前面 希望你们看了能够有所收获,同时觉得不错的朋友可以点赞和关注下我,以后还会有更多精选文章分享给大家!大家可以关注一下java提升专栏 java提升​zhuanlan.zhihu.com 什么是 ...

  4. Java集合—哈希(hash)表

    原文作者: 原文地址: 1.哈希表的定义 这里先说一下哈希(hash)表的定义:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方,说起来可能感觉有点复杂,我 ...

  5. 【哈希和哈希表】Beads

    问题 G: [哈希和哈希表]Beads 时间限制: 1 Sec  内存限制: 128 MB 提交: 6  解决: 2 [提交] [状态] [讨论版] [命题人:admin] 题目描述 Byteasar ...

  6. 高级数据结构与算法 | 哈希 :哈希冲突、负载因子、哈希函数、哈希表、哈希桶

    文章目录 哈希 哈希函数 常见的哈希函数 字符串哈希函数 哈希冲突 闭散列的解决方法 开散列的解决方法 负载因子以及增容 对于闭散列 对于开散列结构 具体实现 哈希表(闭散列) 插入 查找 删除 完整 ...

  7. 哈希值 哈希表_哈希杰森

    哈希值 哈希表 我最近写了一个简单的库,可预测地对json进行哈希处理 . 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值,以便稍后确定该 ...

  8. 哈希(哈希表与哈希函数)

    一.哈希 哈希函数是计算机领域特别是在密码学领域应用最广泛的算法之一,哈希表是数据结构中应用最广泛的结构之一,本博客将为大家介绍哈希函数,介绍哈希表. 1.哈希函数 2.哈希表 3.哈希函数在大数据中 ...

  9. 哈希 :哈希冲突、负载因子、哈希函数、哈希表、哈希桶

    文章目录 哈希 哈希(散列)函数 常见的哈希函数 字符串哈希函数 哈希冲突 闭散列(开放地址法) 开散列(链地址法/拉链法) 负载因子以及增容 对于闭散列 对于开散列结构 具体实现 哈希表(闭散列) ...

  10. 一本通提高篇 哈希和哈希表 (二)哈希表

    哈希表 哈希表是一种搞笑的数奆结垢.它的优点同字符串哈希一样,查找的算法时间效率几乎就是常数时间,同时也很容易实现,多产生的代价仅仅是消耗内存. 那么什么是哈希表呢 ,我的理解是:按一种分类方式将所有 ...

最新文章

  1. 获取邮箱通讯录,msn好友列表的C#源码
  2. 网络营销外包——网络营销外包专员如何提升首页关键词的转化率
  3. android点击事件禁用,android-禁用所有视图的触摸事件
  4. 能让你纵享丝滑的SSR技术,转转这样实践
  5. 关于Java开发需要注意的十二点流程
  6. S5PV210的启动过程:三星推荐的启动方式和uboot的实现方式不同
  7. android 高度上分权重,Android LinearLayout weight权重使用
  8. val_loss突然变很大_女朋友突然变得很冷淡是怎么回事?该怎么办
  9. 杭州python靠谱吗_杭州Python高薪就业靠谱吗?
  10. 进程调度:优先数法与轮转法的实现
  11. Concrete Mathematics A Foundation for Computer Science
  12. 博文视点大讲堂第36期——让Oracle跑得更快(3大oracle ACE联合推荐)
  13. C语言中的指针型函数值
  14. 【VC++类型转换】CString和System::String类型的转换
  15. 用C语言实现简单小游戏
  16. quartus II DDS实验
  17. su: Authentication failure问题
  18. Parallel Data Augmentation for Formality Style Transfer翻译
  19. 给RTL8111网卡固定MAC地址的一种方法
  20. 资深运维给你讲:一个小白的运维成长故事

热门文章

  1. 量化投资学习-26:最贵的免费与时间的价值
  2. 在诗和远方中感受别样科技魅力,一次带上英得尔车载冰箱的自驾之旅!
  3. three.js 专题
  4. 文本框时间为日历格式
  5. 特征工程之数据预处理——哑变量处理
  6. Android 自定义曲线箭头和直线箭头
  7. 不谋一时不足以谋一域_“不谋万世者不足谋一时,不谋全局者不足谋一域”是什么意思?...
  8. Java中hashCode的作用
  9. Java重载hashcode_HashCode 作用,如何重载hashCode方法
  10. 极限与连续和可导的关系