大数取模的两道题。

虐狗宝典学习笔记:

两个数值执行算术运算时,以参与运算的最高数值类型为基准,与保存结果的变量类型无关。两个32位整数的成绩可能超过int类型的表示范围,但是CPU只会用一个32位寄存器保存结果,造成越界,此时我们必须把其中一个数强制转换成64位整数类型long long参与运算。得到正确的结果,取模后,执行赋值操作时,该结果会被隐式转换成int存回。

CH0101---a^b

 #include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long LL; int power(int a, int b, int p)
{
int ans = % p;
while(b){
if(b & ) ans = (long long) ans * a % p;
a = (long long)a * a % p;
b >>= ;
}
return ans;
} int main()
{
int a, b, p;
scanf("%d%d%d", &a, &b, &p);
printf("%d\n", power(a, b, p));
return ;
}

CH0102---64位整数乘法

 #include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long LL; long long mul(long long a, long long b, long long p)
{
long long ans = ;
while(b){
if(b & ) ans = (ans + a) % p;
a = a * % p;
b >>= ;
}
return ans;
} int main()
{
LL a, b, p;
scanf("%lld%lld%lld", &a, &b, &p);
printf("%lld\n", mul(a, b, p));
return ;
}

CH0101 a^b & CH0102 64位整数乘法的更多相关文章

  1. CH0101 a^b、 CH0102 64位整数乘法(快速幂、快速乘)【模板题】

    题目链接:传送门    //a^b   传送门    //64位整数乘法 题目: 描述 求 a 的 b 次方对 p 取模的值,其中 ≤a,b,p≤^ 输入格式 三个用空格隔开的整数a,b和p. 输出格 ...

  2. CH0102 64位整数乘法 数论

    正解:数论/一个神仙想法 解题报告: 先放传送门qwq 两种方法,都还挺妙的就都写了qwq 第一种是快速幂 把b用二进制表示成,ck*2k+ck-1*2k-1+...+c0*20 然后就可以表示成,a ...

  3. CH 0101 - a^b / CH 0102 - 64位整数乘法 - [快速幂和快速乘]

    0101 a^b 题目链接:传送门 描述 求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9 输入格式 三个用空格隔开的整数 a,b 和 p. 输出格式 一个整数,表示 a^b mo ...

  4. AcWing 90. 64位整数乘法

    求a*b%p的值. 0<a,b,p<1e18; 原题链接 #include<bits/stdc++.h> #define ull unsigned long long usin ...

  5. C++的64位整数

    在做ACM题时,经常都会遇到一些比较大的整数.而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647.而unsig ...

  6. C/C++中的64位整数

    C/C++中的64位整数(__int64 and long long) 在做ACM题时,经常都会遇到一些比较大的整数.而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31, ...

  7. windows 64位整数

    #include <iostream> #include <ctime> using namespace std; int main() { cout << cou ...

  8. printf如何输出64位整数

    From: http://blog.csdn.net/zzqhost/article/details/6064886 关于printf函数输出64位数的问题,其实在window下和linux下是不一样 ...

  9. C对64位整数类型的支持

    在使用C语言过程中可能需要接触长整数类型,其中包括固定长度数据类型的声明.输入输出函数的标志符等细节,在此记录. int64_t 与 uint64_t C的标准只规定特定数据类型需要实现的最小长度,特 ...

随机推荐

  1. go interface介绍

    http://legendtkl.com/2017/06/12/understanding-golang-interface/      深入理解 Go Interface http://legend ...

  2. 正则 /\D/g

    onKeyUp="this.value=this.value.replace(/\D/g,'');"红色的是什么意识 /g是什么意思 ----------------------- ...

  3. wcf中的使用全双工通信(转)

    wcf中的使用全双工通信   wcf中的契约通信默认是请求恢复的方式,当客户端发出请求后,一直到服务端回复时,才可以继续执行下面的代码. 除了使用请求应答方式的通信外,还可以使用全双工.下面给出例子: ...

  4. php危险的函数和类 disable_functions/class

    phpinfo()功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息.危险等级:中 passthru()功能描述:允许执行一个外部程序并回显输出,类似于 exec().危险等级:高 e ...

  5. Java中过滤器和拦截器的区别

    1.拦截器是基于java反射机制的,而过滤器是基于函数回调的. 2.过滤器依赖于servlet容器,而拦截器不依赖于servlet容器. 3.拦截器只对action起作用,而过滤器几乎可以对所有请求起 ...

  6. Android Studio 无法预览xml布局视图的解决办法

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lvyoujt/article/details/73283762 提示:failed to load ...

  7. 【Linux】使用 telnet 提示 Escape character is '^]'的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

  8. 支持向量机SVM进阶

    本文适合于对SVM基本概念有一点了解的童鞋. SVM基本概念: 最大边缘平面--基本原理:结构风险最小化 分类器的泛化误差 支持向量 问题描述: 请对一下数据,利用svm对其进行分类.       最 ...

  9. 【cs229-Lecture7】支持向量机(SVM)

    SVM不错的学习资料: 百度网盘链接: http://pan.baidu.com/s/1hqw0Rnm 密码: asec blog:http://www.blogjava.net/zhenandaci ...

  10. java框架---->quartz的使用(一)

    Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.今天我们就来学习一下它的使用,这里会分篇章对它进行介绍.只是希望能有个人,在我说没事的时候,知道我不 ...