zoukankan      html  css  js  c++  java
  • [bzoj2242] [SDOI2011]计算器

    #570. [bzoj2242] [SDOI2011]计算器

    题目描述

    你被要求设计一个计算器完成以下三项任务:
    1、给定y,z,p,计算Y^Z Mod P 的值;
    2、给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数;
    3、给定y,z,p,计算满足Y^x ≡ Z ( mod P)的最小非负整数。

    输入格式

    输入包含多组数据。
    第一行包含两个正整数T,K分别表示数据组数和询问类型(对于一个测试点内的所有数据,询问类型相同)。
    以下行每行包含三个正整数y,z,p,描述一个询问。

    输出格式

    对于每个询问,输出一行答案。对于询问类型2和3,如果不存在满足条件的,则输出“Orz, I cannot find x!”,注意逗号与“I”之间有一个空格。

    样例

    样例输入1

    3 1
    2 1 3
    2 2 3
    2 3 3

    样例输出1

    2
    1
    2

    样例输入2

    3 2
    2 1 3
    2 2 3
    2 3 3

    样例输出2

    2
    1
    0

    数据范围与提示

    对于100%的数据,1<=y,z,p<=10^9,为质数,1<=T<=10。

     1.快速幂取模。

     2.拓展欧几里得:

      xy≡ z ( mod p )

      xy-bp=z;

      设t=gcd(y,p),若z%t!=0,则无解;

      令y/t,p/t,z/t,此时gcd(y,p)=1,

      用exgcd求解 xy-bp=1

       得到xz之后*z即为所求。

    3.BSGS算法板子

    波澜前,面不惊。
  • 相关阅读:
    链表的一些规律总结
    acclib的尝试
    初入指针
    在一个堆成矩阵中的循环判断(井字棋游戏)
    初学c语言的小套路汇总
    在循环中计算式一正一负的处理
    最大公约数的计算方法
    大数加法
    大数乘法
    复制可见区域到新表
  • 原文地址:https://www.cnblogs.com/Al-Ca/p/11137533.html
Copyright © 2011-2022 走看看