当mod一个大数p的时候,还有进行乘法的时候可能会爆long long的时候,就用快速乘或者快速幂。 参考:http://www.cnblogs.com/whywhy/p/5066730.html 先上模板: 快速乘: ll multi(ll a,ll b,ll m) { ll ans=0; whi...
分类:
其他好文 时间:
2016-02-07 17:31:06
阅读次数:
280
1: 问题如下: 求 a^n % m 的值是多少?n是1到10^18次方的一个整数。 求一个数的n次方,朴素的算法就是直接for循环,O(N)的复杂度。 但是对于这个问题n实在是太大了,O(N)也会超时,那么需要更快的算法,快速幂算法。 要求 a^n,如果知道了 a^(n/2) 次方的话,...
分类:
编程语言 时间:
2015-12-22 16:00:39
阅读次数:
145
又是一个赤裸裸的模板,倍增思想其实是关键,我们只有稍加改动,也可以得出另外一种运算,快速乘,但实用性不如快速幂,大概只有在大整数乘法时才会用到而倍增思想并不是仅仅用于快速运算,倍增求lca也是常用的倍增算法#include #include #include #include #include #i...
分类:
其他好文 时间:
2015-08-28 23:04:38
阅读次数:
264
2326: [HNOI2011]数学作业Time Limit:10 SecMemory Limit:128 MBSubmit:1388Solved:799[Submit][Status][Discuss]DescriptionInputOutputSample InputSample OutputH...
分类:
其他好文 时间:
2015-08-17 21:26:52
阅读次数:
111
矩阵快速幂...+快速乘就OK了--------------------------------------------------------------------------------------#includeusing namespace std;typedef long long ll...
分类:
其他好文 时间:
2015-08-12 23:33:21
阅读次数:
150
说到素数不得不说素数判定算法。其中极为经典的为Rabin Miller测试。通过二次探测的方法,我们可以将其正确率上升到一个很高的高度。二次探测的原理我还是不太懂,所以NOI前我暂时只是梳理一下这个算法的流程。首先,我来介绍一些小Trick。$O(1)$的快速乘。在一些卡常数而且爆long long...
分类:
其他好文 时间:
2015-07-07 10:55:26
阅读次数:
310
简单找出规律,答案为(2^n-2 )%p(1特判) 然而 n,p的最大值为 1e18 因此显然要快速幂,而且由于1e18 的平方超long long 所以在乘的时候要用快速乘法,快速乘法的原理和快速幂一样,a^b是 b个a相乘 ,快速乘法是b个a相加#include #include #includ...
分类:
其他好文 时间:
2015-07-05 21:16:00
阅读次数:
136
dp[[i][j] = sum(dp[i - 1][k]) (k -> j)
状态方程,因为N很大而M很小,所以第一时间可以想到矩阵优化
可能之前没做过类似的题被卡的很厉害。
另外用C++写大数真心麻烦。。
#include
#include
#include
using namespace std;
const int maxn = 45;
const int maxd = 30005;...
分类:
其他好文 时间:
2015-05-26 23:29:52
阅读次数:
286
参考这里:http://www.cnblogs.com/pdev/p/4354705.html题意:求大数乘法A*BA和B位数很长。裸高精度时间复杂度是O(nm),会完蛋不妨回忆下裸高精度的过程:其实乘法的那一步很类似前面介绍过的多项式快速乘法诶(⊙▽⊙)所以就可以用前述方法计算咯,时间复杂度O(n...
分类:
其他好文 时间:
2015-04-27 23:09:15
阅读次数:
166
题解:
询问只有10万个,所以有相同性质的连一块的点很多。
所以我们把10910^9点分成最多2?1052*10^5块。然后就随便乱搞了。
分成2?1052*10^5块的过程是先把点排个序,然后就对每个点暴力往下删了。
然后分完了以后就是把所有的点的选择个数xx乘起来就行了。长度为yy那就乘xyx^y
然后可能会爆,所以需要快速乘,请见mul部分。
代码:
#include
#...
分类:
其他好文 时间:
2015-03-28 08:53:12
阅读次数:
227