64位整数乘法 ab%p
64位整数乘法 a*b%p
方法一:思想同二进制快速幂,将b按二进制分解
ll mul(ll a,ll b,ll p) //return a*b mod p
{ll ans=0;while(b){if(b&1)ans+=a,ans%=p;a*=2;a%=p;b>>=1;}return ans;
}
int main()
{ll a,b,p;std::cin>>a>>b>>p;std::cout<<mul(a,b,p)<<'\n';return 0;
}
方法二:利用 ab%p=ab-floor(a*b/p)*p //其中floor(a)表示a向下取整
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G1JETDI1-1618226642575)(C:\Users\pengxin\AppData\Roaming\Typora\typora-user-images\image-20210327114803414.png)]
ll mul(ll a,ll b,ll p)
{a%=p,b%=p;ll c=(long double)a*b/p;ll ans=a*b-c*p;if(ans<0)ans+=p;else if(ans>p)ans%=p;return ans;
}
int main()
{ll a,b,p;std::cin>>a>>b>>p;std::cout<<mul(a,b,p)<<'\n';return 0;
}
out<<mul(a,b,p)<<’\n’;
return 0;
}
64位整数乘法 ab%p相关推荐
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 90. 64位整数乘法:位运算
文章目录 题目解答 题目链接 题目解答 分析: 位运算,快速幂的思想 /* a * b a + a + a + a + a ... + a 共b个aa * 1 = a a * 2 = 2a a * 4 ...
- 64位整数乘法(类快速幂)
题目链接 AcWing 90. 代码 #include <bits/stdc++.h>using namespace std;typedef long long ll;ll quick_m ...
- 再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类
上次我对C#类与结构体做了一次速度评测(http://blog.csdn.net/zyl910/article/details/6788417).经过一段时间思索,发现还可以进一步探讨-- 第一.栈变 ...
- boost::sort模块实现spreadsort 64 位整数排序示例
boost::sort模块实现spreadsort 64 位整数排序示例 实现功能 C++实现代码 实现功能 boost::sort模块实现spreadsort 64 位整数排序示例 C++实现代码 ...
- printf的两个需要注意的问题:无符号整数和64位整数
From: http://www.cnblogs.com/lidp/articles/1696079.html 1) %d和%u的区别 unsigned int dwValue; printf(&qu ...
- php 64位整数,32位和64位PHP和MySQL里的整型范围
一个字节有8位,所以32位int型占用32位/8位=4个字节,64位int型占用64位/8位=8个字节. 32位,64位无符号整型最大值: 2^64-1 = 18446744073709551615 ...
- python字符串转64位数字_python-将String转换为64位整数映射字符以自定义两位值映射...
您将4个不同"数字"的字符串解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个整数. def seq_to_int(seq, _m ...
- python数字转字符串固定位数_python-将String转换为64位整数映射字符以自定...
您将4个不同"数字"的字符串解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个整数. def seq_to_int(seq, _m ...
- 64位计算机int类型字长,64位整数问题
题目描述 输入正整数n,统计它的正因子个数,n<= 10^(12),例如n=30时,输出应该为8. 源码#include #include int main () { int64_t a; in ...
最新文章
- 【转】.NET正则基础之——正则委托
- Servlet与线程安全
- 'unsigned char'-C编程中的声明,赋值和用法
- 天池 在线编程 数组游戏
- 为什么编程语言要从c语言学起,在那么多编程语言中,为什么推荐初学者学 C 语言?...
- 【网络流24题】[CTSC1999]家园
- 黑色沙漠单机一键端服务器维护,《黑色沙漠》网游单机版一键服务端
- 渗透测试专题之实战技巧总结
- Atitit 软件设计中的各种图纸 uml 之道 1. 常见设计成果与图纸	2 1.1. 总图	2 1.2. ui原型图与html	2 1.3. 业务逻辑 伪代码 各种uml图	2 1.4. 总体
- 捷顺USB-RS485驱动
- 编织机上下料西门子S71200PLC和KTP700触摸屏程序博途
- 软件开发模式:瀑布与敏捷应用思考
- 2019年高二上期末成都市调研考试总结暨寒假规划
- linux中合并多个文件到一个文件中
- 论文阅读 2017 —— Sensor Fusion for Fiducial Tags: Highly Robust Pose Estimation from Single Frame RGBD
- 了解公司企业:Primetics
- 错误解决:IllegalArgumentException occurred calling getter of *
- 老铁们,Arxiv每日论文服务美美上线啦
- Chaos Mesh Test(在k8s对mysql,redis zookeeper 进行chaos 测试)
- 深度解读:小红书热搜词底层逻辑,助力小红书笔记上热门