hihocoder1777 彩球
思路:
记录一下快速幂计算过程中爆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 彩球的更多相关文章
- C语言之函数调用06—彩球排列
//函数调用+递归法 /* ========================================================== 题目:将4个红球,3个白球.3个黄球排成一排,共同拥有 ...
- [CSP-S模拟测试]:彩球问题(记忆化搜索)
题目传送门(内部题91) 输入格式 第一行一个正整数$N$,表示颜色种类数. 第二行$N$个正整数$k[i],k[i]$表示第$i$种颜色的数量$(1\leqslant k[i]\leqslant 3 ...
- codeforces problem 140E New Year Garland
排列组合题 题意 用m种颜色的彩球装点n层的圣诞树.圣诞树的第i层恰由l[i]个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同.求有多少种装点方案,答案对p取模. 只 ...
- [cf140e]New Year Garland
Description 用$m$种颜色的彩球装点$n$层的圣诞树.圣诞树的第$i$层恰由$l[i]$个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同. 求有多少种装点 ...
- HTML5自学笔记[ 19 ]canvas绘图实例之炫彩时钟
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 理解HMM
hidden markov model markov model: 把一个总随机过程看成一系列状态的不断转移, 其特性主要使用转移概率来表示. HMM:认为模型的状态是不可观测的(hidden), 能 ...
- C语言,一个彩票摇奖程序摇出22选5的中奖号码
摇奖机摇奖,无非就是利用它的随机性,让球从摇奖机中随机地掉出,就成了中奖号码.而C语言中也同样有个rand()函数可以产生随机数,利用这个rand()函数产生的随机数,同样可以代替从摇奖机中随机摇出的 ...
- cdoj 24 8球胜负(eight) 水题
8球胜负(eight) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/24 ...
- 基于HTML5实现五彩连珠小游戏
今天给大家分享一款基于HTML5实现五彩连珠小游戏.这款游戏的规则:点击彩球移动到期望的位置,每移动一次,画面将随机出现3个新的彩球:当同一颜色的彩球连成5个一行或一列或一斜线时,这5个彩球同时消失, ...
随机推荐
- 单次目标检测器-SSD简介
SSD 是使用 VGG19 网络作为特征提取器(和 Faster R-CNN 中使用的 CNN 一样)的单次检测器.我们在该网络之后添加自定义卷积层(蓝色),并使用卷积核(绿色)执行预测. 同时对类别 ...
- 配置web应用
web应用配置虚拟主机1.web应用的虚拟路径映射,就是web应用的真实存在的路径配置一个虚拟路径 在conf目录下的Server.xml 的<Host>标签中,配置<Context ...
- [Java] 练习题001:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
[程序1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1,2 ...
- python学习笔记——Thread常用方法
Thread对象中的一些方法: 以前说过多线程,用到threading模块中的Thread对象,其中的start和run方法比较熟悉了,start()是重载了Thread对象中的run方法,其实作用还 ...
- Flask_restful 插件实战笔记——基本概念与使用
最近在Resetful接口设计上想法还是挺多的,也实现了一些需求!想着整理下Flask_restful插件的基本知识,方便日后的复习! 官方地址:https://flask-restful. ...
- 坑暗花明:又遇 .NET Core 中 System.Data.SqlClient 查询缓慢的问题
之前发布过一篇博文 下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题,当时遇到的问题是从 SQL Server 2008 R2 中查询获取 100 条记录竟然耗时 ...
- HDU3433 【时间的二分+DP最优解】
题意: 有n个人,X个任务A,Y个任务B, 给出每个人做A做B的时间,一个人只能在某个时刻做一个工作, 问最短时间完成所有工作. 思路: 二分n个人用的时间,判断最优条件用DP. 可以二分就是因为时间 ...
- IT兄弟连 JavaWeb教程 EL与JSTL表达式经典案例
案例需求:使用MVC模式编写一个程序,当发起一个deptList.do请求时,在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中转发到deptlist.jsp,使用JST ...
- 字符串最小表示初探 By cellur925
我们考虑有一个字符串,可以从这个字符串的不同位置出发,把这个字符串大声朗读出来,当到字符串末端的时候再从头开始读,直到回到"梦开始的地方". 设字符串长度为\(n\),那么有\(n ...
- vmware vSAN 入门
参考:https://docs.vmware.com/cn/VMware-vSphere/6.5/com.vmware.vsphere.virtualsan.doc/GUID-18F531E9-FF0 ...