http://acm.hdu.edu.cn/showproblem.php?pid=4549
f[0] = a^1*b^0%p,f[1] = a^0*b^1%p,f[2] = a^1*b^1%p.....f[n] = a^fib[n-1] * b^fib[n-2]%p。
这里p是质数,且a,p互素,那么我们求a^b%p,当b很大时要对b降幂。
因为a,p互素,那么由费马小定理...
分类:
其他好文 时间:
2014-08-11 15:09:12
阅读次数:
235
http://acm.hdu.edu.cn/showproblem.php?pid=3221
一晚上搞出来这么一道题。。Mark。
给出这么一个程序,问funny函数调用了多少次。
我们定义数组为所求:f[1] = a,f[2] = b, f[3] = f[2]*f[3]......f[n] = f[n-1]*f[n-2]。对应的值表示也可为a^1*b^0%p,a^0*b^1...
分类:
其他好文 时间:
2014-08-11 00:22:51
阅读次数:
268
大白书上说的是模运算。。而且给出了递归版的代码。。我觉得还是非递归的好。。而且加上了位运算,速度更快。下面是快速幂取模模板。
模板:
LL quickpow(LL n, LL m, int mod)
{
LL ans=1;
while(m>0)
{
if(m&1)
ans=ans*n%mod;
m=m >>...
分类:
其他好文 时间:
2014-08-06 12:02:21
阅读次数:
234
题目链接;uva 12253 - Simple Encryption
题目大意:给定K1,求一个12位的K2,使得KK21=K2%1012
解题思路:按位枚举,不且借用用快速幂取模判断结果。
#include
#include
#include
using namespace std;
typedef long long ll;
const ll ite=(120)-1;
...
分类:
其他好文 时间:
2014-08-04 11:02:57
阅读次数:
194
Raising Modulo Numbershttp://poj.org/problem?id=1995快速幂取模 1 #include 2 typedef __int64 LL; 3 LL quickpow(LL a,LL b,LL c){//快速幂求(a^b)%c 4 LL ret=1%...
分类:
其他好文 时间:
2014-08-03 17:50:35
阅读次数:
302
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061题目大意:n的n次方,输入个位数~这里介绍一个小的算法:快速幂取模首先,有n个数相乘,如s=a*a*a*a*a*a*a*a*a;假设b=a*a;则s=b*b*b*b*a;继续假设c=b*b;则s=c...
分类:
Web程序 时间:
2014-08-01 19:38:02
阅读次数:
215
快速幂取模算法的时间复杂度为O(logb),能在几乎所有的程序设计(竞赛)过程中通过,是目前最常用的算法之一,值得推广学习!!!
首先要了解这样一个公式:a^b mod c=(a mod c)^b mod c(详细证明请看数论或者离散数学)
了解了这个公式,我们可以先让a关于c取余,这样可以大大减少a的大小, 于是不用思考的进行了改进,代码如下: ..........
分类:
其他好文 时间:
2014-08-01 00:09:31
阅读次数:
299
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4869
题意:有m张扑克,开始时全部正面朝下,你可以翻n次牌,每次可以翻xi张,翻拍规则就是正面朝下变背面朝下,反之亦然,问经过n次翻牌后牌的朝向有多少种情况。
这道题在比赛时我们只开了个头,却无从下手。我看了网上的解题报告,说的都比较简单,对于我这名菜鸟来说也想了比较长的时间才想明白,所以我想写的清楚...
分类:
其他好文 时间:
2014-07-24 23:01:43
阅读次数:
242
先上题目 ~ touch me以前只做过 矩阵快速幂取模~这题是 整数幂取模 差不多一开始 忘记 拆分成二进制 进行离散了 果断TLE ,...这边用到的 * + % 这3个运算符 混合运算时 还是很容易搞混的 1 #include 2 using namespace std; 3 4 _...
分类:
其他好文 时间:
2014-07-16 20:20:08
阅读次数:
158