思路:

记录一下快速幂计算过程中爆long long的两种解决方法:

1. 使用__int128,这玩意本地编译不通过,提交OJ能AC。

实现:

 #include <bits/stdc++.h>
using namespace std;
typedef long long LL; __int128 qpow(__int128 a, __int128 b, __int128 mod)
{
__int128 ret = 1LL;
while (b)
{
if (b & ) ret = ret * a % mod;
a = a * a % mod;
b >>= ;
}
return ret;
} int main()
{
LL n, k, P;
scanf("%lld %lld %lld", &n, &k, &P);
LL ans = qpow(k, n, P);
printf("%lld\n", ans);
return ;
}

2. 利用和快速幂类似的思想实现如下不会溢出的乘法操作。

实现:

 #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n, k, p;
LL mul(LL a, LL b)
{
LL ans = ;
while (b)
{
if (b & ) ans = (ans + a) % p;
a = (a + a) % p;
b = b >> ;
}
return ans;
} LL Pow(LL a, LL b)
{
LL result = ;
LL base = a % p;
while (b)
{
if (b & ) result = mul(result, base) % p;
base = mul(base, base) % p;
b = b >> ;
}
return result;
} int main()
{
cin >> n >> k >> p;
cout << Pow(k, n) << endl;
return ;
}

hihocoder1777 彩球的更多相关文章

  1. C语言之函数调用06—彩球排列

    //函数调用+递归法 /* ========================================================== 题目:将4个红球,3个白球.3个黄球排成一排,共同拥有 ...

  2. [CSP-S模拟测试]:彩球问题(记忆化搜索)

    题目传送门(内部题91) 输入格式 第一行一个正整数$N$,表示颜色种类数. 第二行$N$个正整数$k[i],k[i]$表示第$i$种颜色的数量$(1\leqslant k[i]\leqslant 3 ...

  3. codeforces problem 140E New Year Garland

    排列组合题 题意 用m种颜色的彩球装点n层的圣诞树.圣诞树的第i层恰由l[i]个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同.求有多少种装点方案,答案对p取模. 只 ...

  4. [cf140e]New Year Garland

    Description 用$m$种颜色的彩球装点$n$层的圣诞树.圣诞树的第$i$层恰由$l[i]$个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同. 求有多少种装点 ...

  5. HTML5自学笔记[ 19 ]canvas绘图实例之炫彩时钟

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. 理解HMM

    hidden markov model markov model: 把一个总随机过程看成一系列状态的不断转移, 其特性主要使用转移概率来表示. HMM:认为模型的状态是不可观测的(hidden), 能 ...

  7. C语言,一个彩票摇奖程序摇出22选5的中奖号码

    摇奖机摇奖,无非就是利用它的随机性,让球从摇奖机中随机地掉出,就成了中奖号码.而C语言中也同样有个rand()函数可以产生随机数,利用这个rand()函数产生的随机数,同样可以代替从摇奖机中随机摇出的 ...

  8. cdoj 24 8球胜负(eight) 水题

    8球胜负(eight) Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/24 ...

  9. 基于HTML5实现五彩连珠小游戏

    今天给大家分享一款基于HTML5实现五彩连珠小游戏.这款游戏的规则:点击彩球移动到期望的位置,每移动一次,画面将随机出现3个新的彩球:当同一颜色的彩球连成5个一行或一列或一斜线时,这5个彩球同时消失, ...

随机推荐

  1. Can't locate Log/Dispatch.pm in @INC /Makefile out-of-date with respect to Makefile.PL

    mha check的时候报错问题解决:   # masterha_check_ssh --conf=/data/mha/app1.cnf Can't locate Log/Dispatch.pm in ...

  2. Dom4J 解析xml ,类查询

    /** * 从XML文件比对,传入provinceId 返回 provinceShortName * @param provinceid * @return */ public static Stri ...

  3. su 和sudo 命令

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  4. rsync(三)算法原理和工作流程分析

    在开始分析算法原理之前,简单说明下rsync的增量传输功能. 假设待传输文件为A,如果目标路径下没有文件A,则rsync会直接传输文件A,如果目标路径下已存在文件A,则发送端视情况决定是否要传输文件A ...

  5. cobbler api

    try: import xmlrpclib except ImportError as e: import xmlrpc.client SERVER_IP = '192.168.144.11' try ...

  6. 四、mysql数据常用命令

    1.显示mysql中所有数据库的名称,show databases; 2.访问某个数据库,use database_name; 3.显示当前数据库中所有表的名称,show tables; 4.查看当前 ...

  7. json : json数据解析(一)

    在项目中经常用到json格式的数据转换与解析,先前写过一些小例子,现在整理下,以备后用和帮助后来者. 言归正传: 使用到的jar包 :json-lib-2.4-jdk15.jar,当然你也可以用自己版 ...

  8. 量子隐形传态1 Quantum Teleportation

    量子隐形传态是量子纠缠的又一个应用. 隐形传态,所谓隐形的意思就是没有物质介质就传递了信息,在经典世界,传递信息要有介质,光.电磁波或者其他的什么,但是在量子的世界里,我可以把信息传递给你,并且不传递 ...

  9. Broken robot

    题意: 要在$nm$的矩阵中从 $(i,j)$ 处移动到第 $n$ 行,每次移动可在不动.左移一格.右移一格.下移一格 4 种选择中等概率随机选一种,但移动不能超出矩阵.求移动次数的期望,最少保留4位 ...

  10. PHP实用小程序(六)

    <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio ...