下面我们来看一个容易让人蒙圈的问题:N的阶乘 mod P。

51Nod 1008 N的阶乘 mod P

看到这个可能有的人会想起快速幂,快速幂是N的M次方 mod P,这里可能你就要说你不会做了,其实你会,为什么呢,只要你明白快速幂的原理,你就会发现他们两个其实差不多是同一个问题。

重要原理:积的取模=取模的积再取模。

快速幂不过是一直乘的相同的的数,这里仅仅是改成乘以不同的数而已。

题目:

输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)

例如:n = 10, P = 11,10! = 3628800
3628800 % 11 = 10

Input 两个数N,P,中间用空格隔开。(N < 10000, P < 10^9) Output 输出N! mod P的结果。 Sample Input
10 11

Sample Output

10

下面是代码:(要注意如果用int中间可能会溢出,用int提交h会WA)

#include<cstdio>
#define ll long long
ll quickpow(ll n,ll p){
ll ans=1;
for(ll i=1;i<=n;i++){
ans=ans*i%p;
}
return ans;
}
int main()
{
ll n,p;
scanf("%lld%lld",&n,&p);
printf("%lld",quickpow(n,p));
}

快速幂的类似问题(51Nod 1008 N的阶乘 mod P)的更多相关文章

  1. 51nod 1008 N的阶乘 mod P

    输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)   例如:n = 10, P = 11,10! = 3628800 3628800 % 11 = 10   Input 两 ...

  2. 51 Nod 1008 N的阶乘 mod P【Java大数乱搞】

    1008 N的阶乘 mod P 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)   例如:n ...

  3. 快速幂取模模板 && 51nod 1013 3的幂的和

    #include <iostream> #include <cstdio> #include <cmath> #include <vector> #in ...

  4. 【51NOD-0】1008 N的阶乘 mod P

    [算法]简单数学 [题解]多项式展开:(a*b)%p=(a%p*b%p)%p #include<cstdio> #include<algorithm> #define rep( ...

  5. 薛XX后代的IQ CSU1597【循环节】或【快速幂】

    薛先生想改变后代的IQ,为此他发明了一种药,这种药有三种属性:A, B,P.他父亲的智商为X,薛先生的智商为Y,用了这种药之后,薛先生的孩子的智商就可以变为(AX+BY) mod P.后代的智商以此类 ...

  6. 矩阵快速幂-QuickPow

    矩阵快速幂引入: 1.整数快速幂: 为了引出矩阵的快速幂,以及说明快速幂算法的好处,我们可以先求整数的幂.如果现在要算X^8:则 XXXXXXXX 按照寻常思路,一个一个往上面乘,则乘法运算进行7次. ...

  7. jiulianhuan 快速幂--矩阵快速幂

    题目信息: 1471: Jiulianhuan 时间限制: 1 Sec  内存限制: 128 MB 提交: 95  解决: 22 题目描述 For each data set in the input ...

  8. hiho #1143 : 骨牌覆盖问题·一 (运用快速幂矩阵)

    #1143 : 骨牌覆盖问题·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 骨牌,一种古老的玩具.今天我们要研究的是骨牌的覆盖问题:我们有一个2xN的长条形棋盘,然 ...

  9. HDU 2817 A sequence of numbers 整数快速幂

    A sequence of numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

随机推荐

  1. FBV CBV

    目录 CBV 和 FBV 介绍 路由绑定 urlpatterns = [ # 1)项目启动,将test函数地址绑定给/test/路由 # 2)请求/test/访问后台,后台就会调用绑定的test函数 ...

  2. upload-labs-env文件上传漏洞 1-10关

    Pass-01 首先先看源码: function checkFile() { ].value; if (file == null || file == "") { alert(&q ...

  3. centos7下yourcompleteme安装

    以前装过一回,没成功,现在再来一次 yourcompleteme git https://github.com/ycm-core/YouCompleteMe#installation 检查软件版本 v ...

  4. 使用命令行连接远程DB2数据库

    1. 打开命令窗口 win + r  输入 db2cmd 2. 首先在客户机上对远程节点进行编目 CATALOG  TCPIP                    //编目一个TCP/IP节点NOD ...

  5. 2020寒假 05 ——eclipse安装scala环境

    在eclipse中安装Scala环境 1安装eclipse插件步骤,点击help,选择Eclipse Marketplace 2.输入Scala,点击go 3.选择搜索到的Scala IDE 4.7. ...

  6. gem5-gpu 运行 PARSEC2.1

    PARSEC是针对共享内存多核处理器(CPU)的一套基准测试程序,详细介绍见wiki:http://wiki.cs.princeton.edu/index.php/PARSEC,主要参考:http:/ ...

  7. linux桌面系统 镜像下载

    1.Ubuntu 官方下载地址(不推荐,网速较慢):https://www.ubuntu.com/download 阿里云:http://mirrors.aliyun.com/ubuntu-relea ...

  8. Mac安装软件提示破损

    安装提示破损 zhong终端输入 sudo spctl --master-disable 就可以顺利打开啦

  9. 从高通出重拳,iPhone遭禁售看巨头们的专利大战

    一直以来,高通看起来都是很有"骨气"的.面对与苹果的专利纷争,高通始终是据理力争.顽强对抗.截至今年6月中旬,高通和苹果打了50多场专利官司,且这些官司分布于6个不同国家的16个司 ...

  10. 基于springboot实现Java阿里短信发送

    1.接口TestController import java.util.Random; import com.aliyuncs.DefaultAcsClient; import com.aliyunc ...