• 知识点简单总结——BSGS与EXBSGS


    知识点简单总结——BSGS与EXBSGS

    BSGS

    给出 $ A,B,C,(A,C)=1 $ ,要你求最小的 $ x $ ,使得 $ A^x equiv B(mod C) $ 。

    在数论题中经常会看见这样的式子,而它的用处确实也不少,例如:
    指标
    。。。想不到了(被打)

    解题思路

    众所周知 $ A^{x} equiv A^{x mod phi (C) }(mod C) $

    所以考虑暴力枚举就可以。

    但是我们显然要考虑一个更快的。

    分块就好了。

    设块大小 $ m $ ,预处理出 $ A^{1,2,...,m-1} $ 扔进哈希表。

    剩下的应该不难了,经典分块一般的操作。

    枚举每一个 $ i $ ,左式 $ =A^{im} $ 时哈希表里是否存在一个值 $ z $ 使得 $ A^{im}*z equiv B(mod C) $ ,存在的话就返回该最小答案。

    EXBSGS

    同上,唯一变化就是不保证 $ (A,C)=1 $ 。

    既然它不给保证那就我们自己让它转化成 $ (A,C)=1 $ 。

    对于 $ A^x equiv B(mod C),(A,C)=d $ ,直接全都除以 $ d $ ,

    (如果 $ B mod d eq 0 $ 直接无解)

    变成 $ (A/d)*A^{x-1} equiv B/d(mod C/d) $ 。

    此时仍然无法保证 $ A $ 与 $ C/d $ 互质,

    那么就重复以上操作直到互质。

    然后就没了。

  • 相关阅读:
    5.16欢乐赛
    卢卡斯定理
    noip2017 宝藏
    [JSOI2009]计数问题
    HDU 1160 FatMouse's Speed
    HDU 1260 Tickets
    HDU 1176 免费馅饼
    HDU 1114 Piggy-Bank
    HDU 1074 Doing Homework
    HDU 1069 Monkey and Banana
  • 原文地址:https://www.cnblogs.com/rikurika/p/12222439.html
Copyright © 2020-2023  润新知