描述


分析

  • 关键就是对式子的变形, 将原递推公式转化为通项公式, 中间会用到等比数列求和公式. 然后切记此时方程两边同乘(1-a), 然后就化简开了.
  • 之后得到的式子是 a^(n-1) = ... (mod p) 然后就可以用BSGS求解了. 注意最后加1.
  • 公式明天补上
  • 几种特判情况 :
    • 如果a = 0, 这时 X = b, 如果t = b输出1, 否则输出-1
    • 如果a = 1, 为什么这也要特判呢, 因为等比数列求和公式里的q一定不为1.
      此时Xi = Xi-1 + b是等差数列 Xn = X1 + (n-1) * b (mod p), i = (Xn - X1 + b) * b^(-1)
      这时还需要看如果b = 0, 输出-1; 如果Xn-X1+b = 0, 求出 i = 0, 但是想想实际情况应该是第 p 天才看到那一页
  • 现在写代码有点不走脑子, 调了半天发现我图省事把变量全开long long结果就是有个地方开了int还没转换.
  • 感觉最近睡的有点少, 该充电了.

代码

https://code.csdn.net/snippets/624452

BZOJ-3122-随机数生成器-SDOI2013-BSGS相关推荐

  1. Bzoj 3122 随机数生成器

    输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码.注意:P一定为质数 output 共T行, ...

  2. luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...

  3. bzoj3122 [Sdoi2013]随机数生成器(bsgs+扩欧+数列)

    Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意 ...

  4. P3306-[SDOI2013]随机数生成器【BSGS】

    正题 题目链接:https://www.luogu.com.cn/problem/P3306 题目大意 给出一个p,a,b,x1,tp,a,b,x_1,tp,a,b,x1​,t,有xi=axi−1+b ...

  5. bzoj千题计划259:bzoj3122: [Sdoi2013]随机数生成器

    http://www.lydsy.com/JudgeOnline/problem.php?id=3122 等比数列求和公式+BSGS #include<map> #include<c ...

  6. bzoj3122 [SDOI2013]随机数生成器

    bzoj3122 [SDOI2013]随机数生成器 给定一个递推式, \(X_i=(aX_{i-1}+b)\mod P\) 求满足 \(X_k=t\) 的最小整数解,无解输出 \(-1\) \(0\l ...

  7. 数论练习二之BSGS算法——随机数生成器,Matrix,Lunar New Year and a Recursive Sequence,Fermat‘s Last Theorem

    [SDOI2013] 随机数生成器 description solution 肯定是非常想找一个通项公式来表示第nnn个数的 依据形式,考虑化成等比数列 xi+1+k=a(xi+k)=a⋅xi+b+t ...

  8. 【BZOJ】【3671】【NOI2014】随机数生成器

    贪心 嗯--其实生成这个矩阵就是一个$O(n^2)$的模拟 = = 然后?字典序最小?贪心呗= =能选1就选1,然后能选2就选2-- 我们发现,对于矩阵(1,1)~(n,m),假设1的位置是(x,y) ...

  9. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...

  10. 开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器

    原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器                本博客所有文章分类的总目录:http://www.cnblogs.com/asxiny ...

最新文章

  1. Neural Tensor Network详细介绍
  2. c、c++---linux上的GetTickCount函数
  3. 云信小课堂|聊天室内容审核很头疼?3步解决!
  4. Boost:双图和boost assign的测试程序
  5. css画横线箭头_2020年你应该关注这50款前端热门工具:CSS HTML 工具篇
  6. python脚本变成exe_Python脚本转exe文件
  7. 每天一道LeetCode-----求一个数的n次方,n是很大很大的数,n用数组存储着
  8. html 文字输出语音,html 录音与文本转语音demo
  9. 久谦咨询python笔试题目_【久谦咨询面试|面试题】-看准网
  10. 使用Settings Bundle为程序添加设置项
  11. [UWP开发]NavigationView基础使用方法
  12. mysql 通过ssh通道安全连接数据库
  13. Docker优势以及与传统虚拟机对比(1)
  14. 视频教程-【曾贤志】Excel函数视频教程-Office/WPS
  15. Hive/MaxCompute SQL性能优化(三):数据倾斜优化实战
  16. VirtualBox虚拟机使用Vagrant连接win(甲骨文Oracle VM )
  17. LCA 天天爱跑步
  18. Web全栈开发1+x(中级)PHPMySQL知识
  19. Oracle-12:伪列rowid和rownum
  20. LeetCode算法刷题目录 (Java)

热门文章

  1. 云炬随笔20211012(2)
  2. python 利用pyinstaller 编译.exe文件过程中编写完的.exe文件执行过程中闪退
  3. VTK修炼之道79:交互与拾取_单位拾取
  4. 23种设计模式C++源码与UML实现--中介者模式
  5. 高级C语言教程-存储器和指针
  6. Python变量使用前必须先声明,并且一旦声明就不能在当前作用域内改变其类型————(错)
  7. 25匹马,找出最快的3匹,但是只有5个赛道,每次比赛只能得到5匹马的速度排序,那么最少需要多少次比赛
  8. 【是泰波那契,不是斐波那契】1137. 第 N 个泰波那契数
  9. 【☘️C语言の单链表是否有环问题☘️】
  10. STM32开发 -- 蓝牙开发详解(2)