1 long long ksj(long long a,long long b,long long c) //快速积取模 a*b%c 2 { 3 long long ans=0; 4 while(b){ 5 if(b&1) 6 ans=(ans+a)%c; 7 a=(a+a)%c; 8 ... ...
分类:
其他好文 时间:
2019-08-22 00:49:15
阅读次数:
72
在ACM的比赛中,我们经常会遇到指数型的数据的取模问题。 如果我们直接对数据进行取模,由于题目所给的数据的范围很大,会导致爆int 或者 long long 所以我们要采取快速幂取模 先看一组例子: 2*2*2*2*2*2*2*2*2*2*2 我们可以这样去算 原式=4*4*4*4*4*2 =8*8 ...
分类:
其他好文 时间:
2019-06-20 09:26:57
阅读次数:
130
map m; //分解质因数 //k为1或-1 void fun(int n, int k) { for (int i = 2; i 1) { m[n] += k; } } //大数快速幂取模 LL quick_pow(LL a, LL b) { LL ret = 1; while (b) { if... ...
分类:
其他好文 时间:
2019-01-08 10:54:21
阅读次数:
164
本原串 由0和1组成的串中,不能表示为由几个相同的较小的串连接成的串,称为本原串,有多少个长为n(n<=100000000)的本原串? 答案mod2008. 例如,100100不是本原串,因为他是由两个100组成,而1101是本原串。 Input 本原串 由0和1组成的串中,不能表示为由几个相同的较 ...
分类:
其他好文 时间:
2018-11-22 02:50:17
阅读次数:
233
题面 输入只有5位,所以转化为long long类型用快速幂取模 前面补0的写法printf("%05lld\n",ans);如果ans不足5位会在前面补0 1 #include<bits/stdc++.h> 2 using namespace std; 3 long long mod_exp(lo ...
分类:
其他好文 时间:
2018-11-17 17:54:44
阅读次数:
186
Easy Summation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 4112 Accepted Submission(s): 167 ...
分类:
其他好文 时间:
2018-10-27 00:16:18
阅读次数:
140
摘要: 本文主要介绍了整数快速幂、矩阵快速幂及其应用,以题为例重点展示了使用细节。 我们要计算一个整数x的n次方,即x^n,普通的方法是连乘,这里介绍一种效率非常高的计算幂运算的算法——反复平方法。 首先考虑加速幂运算的方法,如果n=2^k,则可以将x^n = ((x2)2)..,即只要做k次平方运 ...
分类:
其他好文 时间:
2018-10-23 18:08:35
阅读次数:
214
步骤 ①先写快速幂取模函数 ②MR算法开始 (1)传入两个参数一个是底数一个是n也就是幂数,如果n是一个合数那么可以判定,这个数一定不是素数 (2)然后开始寻找一个奇数的n去计算,如果最后满足a^d%n=1那么这个可能就是一个素数,然后再判断k=n 1(目前数学不好不明所以) (3)MR结束 ③编写 ...
分类:
其他好文 时间:
2018-10-17 00:24:37
阅读次数:
229
首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下: 假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时, ...
分类:
其他好文 时间:
2018-10-06 16:38:12
阅读次数:
221
题目链接 Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, please calculate fn modulo 1000000007 (109?+?7). ...
分类:
其他好文 时间:
2018-10-04 11:15:32
阅读次数:
136