首页 > 其他分享 >扩展BSGS/exBSGS

扩展BSGS/exBSGS

时间:2024-03-10 16:23:41浏览次数:28  
标签:跳出 pt 题解 exBSGS 扩展 节上 循环 这篇 BSGS

先看这篇题解

下面是一些注释

首先,这篇题解的做法相当于是跟蓝书上插入查询的对象刚好反过来,也没有问题

然后,是对这篇题解存前两个的解释

首先是为什么会存在这个问题?我们考虑\(a^{p_1t}\)和\(a^{p_2t}\),其中\(p_1<p_2\)而且\(a^{p_1t}\equiv a^{p_2t} (mod\: p)\)

那么我们在枚举\(q\)的时候,我们是两种情况都要考虑的,因为此时最开始的那个等式的变换不是充要条件,我们不能漏掉任何一种可能的解

然而这样就会提升复杂度。这篇题解的解决方法是,我们设所有满足这样条件的\(p\)的集合是{\(p_1,p_2,...,p_k\)}(假设严格递增),那么我们只用检验\(p_1\)和\(p_2\)即可。原因如下:由于\(a^{p_it}\)同余的值都相等,所以他们现在一定进入了一个指数循环节上的某一点;由于\(q<t\),\(p_1t-q\)可能跳出指数循环节,但是\(p_it-q\)(\(i>1\))不可能跳出指数循环节,而且每一个\(p_it-q\)所在节点都一样,所以我们只用检验前两个。下面给出一张图来帮助理解(这是底数是\(124\),模数是\(495616\)的情况)

比如\(p_it\)在\(245760\)这个点上,那么\(p_1t-q\)可能会跳出这个环,走到前面的那条链上的某一节点,但是\(p_it-q\)(\(i>1\))一定都是在\(245760\)这个点上

我们如果按照蓝书的做法,也是可以这么做的,但是保留的就是\(a^q\)的最大和次大的\(q\)了。设此时这个集合是{\(q_1,q_2,...,q_k\)}(假设严格递减),那么这些点仍然在循环节上,而注意\(pt>q_1\),所以\(pt\)也在循环节上;那么\(pt-q_1\)可能跳出循环节,但是\(pt-q_i\)(\(i>1\))就不可能跳出循环节了

标签:跳出,pt,题解,exBSGS,扩展,节上,循环,这篇,BSGS
From: https://www.cnblogs.com/dingxingdi/p/18064312

相关文章

  • .Net 的扩展方法
    //扩展方法//ps:js中的扩展方法比如给数组定义一个自定义的全局的方法使用prototype(原型链)//.Net给string添加一些扩展方法String是一个密封的类(不让继承的类,有Sealed关键字)//stringArraynull等在System命名空间下面;//扩展方法一定是在静态类里面str......
  • 直播app开发,实现具备可扩展性代码的关键
    在直播app开发过程中,会经常碰到这么一些需求,比如在在主流程执行前,要做一些前置事件,在主流程执行之后,做一些收尾工作。对一些新手程序员,他可能会直接写类似如下的代码publicvoidexecute(){doBefore();doBiz();doAfter();} 对有一定......
  • 技术笔记(3)扩展方法
    技术笔记(3)扩展方法希望实现的功能或目标:继续学习MMORPG游戏开发的框架了解扩展方法‍学习笔记:CanGetLayersExtension类扩展方法GetSystem:publicstaticTGetSystem<T>(thisICanGetSystemself)whereT:class,ISystem{returnStartArchitecture.I......
  • 介绍一个很不错的 php 加密工具 - XLoad 扩展加密工具
    对于PHP开发者来说,代码安全变得越来越重要,选择一个可靠的加密工具是保护代码完全的关键。今天,我要向大家介绍一款非常出色的PHP加密工具-XLoad扩展加密工具。XLoad扩展加密工具是一款强大、安全、而易用的加密软件,它为PHP开发者提供了高效、安全的加密解决方案。这款工......
  • SpringBoot中集成LiteFlow(轻量、快速、稳定可编排的组件式规则引擎)实现复杂业务解耦
    场景在业务开发中,经常遇到一些串行或者并行的业务流程问题,而业务之间不必存在相关性。使用策略和模板模式的结合可以解决这个问题,但是使用编码的方式会使得文件太多,在业务的部分环节可以这样操作,在项目角度就无法一眼洞穿其中的环节和逻辑。一些拥有复杂业务逻辑的系统,核心业......
  • thinkphp8扩展think-swoole4.0
    配置文件config/swoole.php<?php//默认\think\swoole\websocket\Handler::class,usethink\swoole\websocket\socketio\Handler;return['http'=>['enable'=>true,//开启'host'=>......
  • 学java08数据类型扩展
    1.整数拓展二进制前面加“0b”;八进制加0;十进制不写;十六进制0x2.浮点数float特征:有限,离散,舍入误差,接近但不等于因此最好完全不要使用浮点数进行比较问:银行业务一般怎么表示钱?答:一般可以用BigDecimal表示和比较3.Boolean布尔值扩展a."if(flag==true){}"b."if(flag){......
  • Flask请求扩展与g对象
    请求扩展1before_request任意一次请求来了,都会执行这个装饰器装饰的函数(与Django中process_request类似)@app.before_requestdefbefore_request():print('请求来了')2after_request任意一次请求走了,就会执行这个装饰器装饰的函数(与Django中process_response类似......
  • 基于EKF扩展卡尔曼滤波的传感器网络目标跟踪matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2022a 3.算法理论概述       随着传感器网络技术的不断发展,目标跟踪作为其核心应用之一,在军事、民用等领域中得到了广泛的关注。扩展卡尔曼滤波(EKF)作为一种有效的非线性滤波方法,被广泛应用于传感器网络......
  • XDR(eXtended Detection and Response,扩展的安全检测及响应)
    一、什么是XDR首先从EDR(EndpointDetection&Response)说起,即端点安全检测及响应;还有NDR(NetworkDetection&Response),即网络安全检测及响应(类似NTA,不再赘述);以及MDR(ManagedDetectionandResponse),即管理安全检测及响应,也就是安全运维服务。于是,什么是XDR?就是将这些各种各样的DR综......