#10041 「一本通 2.1 练习 7」门票

news2024/12/23 18:49:39

题目描述

RPK 带着 MSH 穿过广场,在第 1618 块砖上按下了一个按钮,在一面墙上随即出现了一个把手。RPK 握住把手,打开了一扇石质大门。他们穿过悠长而芬芳的小道,走到了一扇象征时间的大门——“the gate of time”。
门上写着一个关于时间的谜题 “承诺:____ 年”,RPK 思考了一会,从容地用手指写下 1 万,这时,门开始发出闪光,MSH 感觉到自己的心跳都快停止了。
门开了,眼前是一座美丽的神秘花园!

正当 RPK 和 MSH 准备进入的时候,突然出现了一个看门的老大爷 QL。
QL:“你们干什么你们,还没买票呢!”
RPK 突然想起来现金全拿去买蛋糕了,RPK 很绅士的问:“能刷卡么?我身上没现金。”
QL:“没钱?那你们不能进去!”
RPK(汗):“……”
QL:“等等,我这有道不会的数学题,你解了我就让你们进去。”
(众人:“……”)

有一个数列 \{a_n\}, a_0 = 1, a_{i+1} = (A\times{a_i} + a_i \bmod B) \bmod C,要求这个数列第一次出现重复的项的标号。

这点小问题当然难不倒数学 bug 男 RPK 了,仅凭心算他就得到了结果。

输入格式

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

输出格式

输出第一次出现重复项的位置,如果答案超过 2\times 10^6 输出 -1。

样例

输入

2 2 9

输出

4

数据范围与提示

30% 的数据 A , B , C ≤ 1 0 5 A, B, C \le { 10^5 } A,B,C105

100% 的数据 A , B , C ≤ 1 0 9 A, B, C \le { 10^9 } A,B,C109

30% 的数据 空间限制 4 M 4\text{M} 4M。(囿于测评系统的实现,这部分的空间限制取消)

大致思路

虽说是一个哈希表的题,但完全可以用unordered_map水过去
具体思路也很简单,有就打标记,有重复直接break;

#include<bits/stdc++.h>
#define ull unsigned long long 
using namespace std;
long long int a,b,c,ans;
bool flag=1;
ull k;
/*unordered_*/map<ull,bool>mapp;
int main(){
	cin>>a>>b>>c;
	k=1;ans=0;mapp[1]=1;
	while(flag){
		ans++;
		if(ans>2000000){
			cout<<-1<<endl;
			break;
		}
		k=(a*k+k%b)%c;
		if(mapp[k]==1){
		cout<<ans<<endl;
			break;
		}
		mapp[k]=1;
	}
	return 0;
}

纯暴力代码,居然也能过

#include<bits/stdc++.h>
#define maxn 66000000
#define LL long long
#define uLL unsigned long long
using namespace std;
int A,B,C,cnt;
uLL Get[maxn];
bool vis[maxn];
int main(){
	cin>>A>>B>>C;
	Get[0]=1;vis[1]=1;
	while(1){
		cnt++;
		Get[cnt]=(Get[cnt-1]*A+Get[cnt-1]%B)%C;
		if(cnt>2e6) {
			cout<<"-1";
			return 0;
		}
		if(vis[Get[cnt]]) break;
		vis[Get[cnt]]=1;
	}
	cout<<cnt;
	
	return 0;
}

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

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

相关文章

Elisp之定时器run-with-timer、run-with-idle-timer、run-at-time 区别(二十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

libevent(11)libevent中的循环和退出函数

一、libevent基本原理介绍 一个 event_base 对象相当于一个 Reactor 实例&#xff08;不了解Reactor的读者可自行查询相关文章&#xff09;。libevent默认情况下是单线程的&#xff0c;每个线程有且只有一个event_base&#xff0c;对应一个struct event_base结构体以及附于其上…

由于找不到msvcp120.dll无法继续执行代码怎么办?

msvcp120.dll是微软软件包的一部分。它是一个库文件&#xff0c;可用于支持软件运行时&#xff0c;msvcp120.dll的作用是提供计算机程序所需的标准库&#xff0c;msvcp120.dll还负责管理堆内存、线程和异常处理函数等。在使用windows编写的应用程序中&#xff0c;通常需要使用此…

android 如何分析应用的内存(八)——malloc debug

android 如何分析应用的内存&#xff08;八&#xff09; 接上文&#xff0c;介绍六大板块中的第三个————malloc调试和libc回调 上一篇文章中&#xff0c;仅仅是在分配和释放的时候&#xff0c;拦截对应的操作。而不能进一步的去检查内存问题。比如&#xff1a;释放之后再…

深入理解Android Jetpack Compose的Box

Box是一个提供了一种快速、简便的方式来对其子元素进行层叠布局的布局组件。 一、什么是Box? 二、如何使用Box? 三、Box中的contentAlignment属性 四、使用Modifier在Box内进行更复杂的布局 一、什么是Box? 在Compose中&#xff0c;Box是一个简单的布局组件&#xff0c…

如何写出高效、准确的会议记录?

在企业或组织中&#xff0c;会议是一种常见的沟通和决策方式。作为参会人员之一&#xff0c;撰写一份高效、准确的会议记录显得尤为重要。会议记录不仅记录了会议的主题、议题和讨论结果&#xff0c;还能帮助参与者回顾会议过程、梳理思路、明确职责&#xff0c;同时也为后续工…

快速入门JavaScript异步编程:从回调到async/await的跨越

文章目录 I. 介绍异步编程的背景和基本概念本文主要讨论JavaScript中的异步编程 II. 回调函数回调函数的定义、作用以及使用场景回调地狱的问题及解决方案 III. PromisePromise的定义、作用以及使用场景Promise的状态及状态转换Promise的链式调用和错误处理 IV. async/awaitasy…

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

1.Fast-RCNN论文背景 2. Fast-RCNN算法流程 3.Fast R-CNN 问题和缺点 这篇以对比RCNN来说明&#xff0c;如果你对RCNN网络没太熟悉&#xff0c;可访问这链接&#xff0c;快速了解&#xff0c;点下面链接 深度学习之目标检测R-CNN模型算法流程详解说明&#xff08;超详细理论篇…

合宙Air724UG Cat.1模块硬件设计指南--原理图设计注意事项

在设计原理时注意以下几点&#xff1a; 严格按照模块硬件手册设计原理图 1.调试接口&#xff1a; 调试务必留出usb&#xff08;烧录脚本&#xff0c;升级用&#xff09; ,1.8v&#xff08;开机标志&#xff09;&#xff0c;uboot&#xff08;强制烧录用&#xff09;测试点&…

软件测试面试,大厂上岸究竟有什么秘诀?

最后&#xff0c;总结一下个人认为比较重要的知识点&#xff1a;接口自动化测试 &#xff1a;测试框架&#xff0c;多个有关联的接口的用例编写&#xff0c;用例的组织及存储&#xff0c;接口测试的覆盖率&#xff0c;RESTAssured 的封装等。UI 自动化测试 &#xff1a;iOS 和 …

Web自动化测试之滑动验证码的解决方案

目录 滑动验证破解思路 案例讲解 实现代码 运行效果&#xff1a; 根据传入滑块&#xff0c;和背景的节点&#xff0c;计算滑块的距离 滑动滑块进行验证 总结&#xff1a; 在Web自动化测试的过程中&#xff0c;经常会被登录的验证码给卡住&#xff0c;不知道如何去通过验证…

Prompt不等于编程,“提示词工程师”淘汰程序员也是伪命题

Original 李建忠 李建忠研思 最近ChatGPT及基于大语言模型&#xff08;Large Language Model&#xff0c;以下简写为LLM&#xff09;的Github Copilot等工具出来之后&#xff0c;在软件开发领域也带来了非常大的震撼。著名的观点有Fixie创始人、前Google工程总监Matt Welsh在AC…

解决onblur()失去焦点事件在刚登陆页面(尚未有任何操作)时就触发的问题

文章目录 一、原始错误&#xff1a;1.1 原始代码1.2 访问页面&#xff08;仅访问页面&#xff0c;不进行任何操作&#xff09; 二、解决错误2.1 解决办法2.2 再次访问页面2.2.1 输入错误格式2.2.2 输入正确格式 最近笔者在编写代码时遇到刚访问页面&#xff0c;什么都没有操作&…

JavaWeb学习笔记-1

学习路线 Web开发–介绍&#xff08;画大饼&#xff09; 什么是Web&#xff1f; Web&#xff1a;全球广域网&#xff0c;也成为万维网&#xff0c;能通过浏览器访问的网站 Web网站的工作流程 网站大致是由三个部分组成的 第一部分就是我们能看到的网页程序&#xff0c;也叫做…

React 组件中怎么做事件代理

React 并不会把所有的处理函数直接绑定在真实的dom节点上&#xff0c;而是把所有的事件绑定到结构的最外层&#xff08;合成事件层&#xff09;&#xff0c;使用一个统一的事件监听器&#xff0c;这个事件监听器上维持了一个映射来保存所有组件内部的事件监听和处理函数。 当组…

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

哈工大计算机网络课程网络层协议详解之&#xff1a;网络地址转换NAT 文章目录 哈工大计算机网络课程网络层协议详解之&#xff1a;网络地址转换NAT网络地址转换&#xff08;NAT&#xff09;NAT实现原理NAT穿透问题NAT穿透问题的解决方案 上一节中&#xff0c;我们在DHCP协议中介…

K 个一组翻转链表

反转链表是比较常出的一种题目&#xff0c;我们有简单难度的一整个链表翻转&#xff1a; private ListNode reverse(ListNode head){ListNode pre null;ListNode cur head;while(cur ! null){ListNode next cur.next;cur.next pre;pre cur;cur next;}return pre;}从第一…

GC说明与介绍,GC的垃圾回收算法有哪些

1、GC是什么 2、GC算法概述 JVM在进行GC时&#xff0c;并非每次都对上面三个内存区域一起回收的&#xff0c;大部分时候回收的都是指新生代。 因此GC按照回收的区域又分了两种类型&#xff0c;一种是普通GC&#xff08;minor GC&#xff09;&#xff0c;一种是全局GC&#xff0…

【算法】行星碰撞机器人碰撞(栈的使用)

文章目录 行星碰撞机器人碰撞参考资料 本文记录了两个使用栈来处理碰撞问题的算法题目。 行星碰撞 https://leetcode.cn/problems/asteroid-collision/ 对于这种题目&#xff0c;各个元素分别会向左或向右移动&#xff0c;可以使用栈模拟碰撞的过程。 由于从左往右进行遍历…

Argis通过Python的Arcpy第三方库进行字段计算、批量将mxd导出为jpg图片、合并数据库

前言 近来公司有开发Arcgis脚本工具的需求&#xff0c;我就去学了一下用Arcpy来操作Arcgis的数据&#xff0c;今天学习了字段计算&#xff0c;将学习成果记录如下。 arcpy帮助文档传送门&#xff1a;https://resources.arcgis.com/zh-cn/help/main/10.2/ 一、字段计算 1、…