- 浏览: 316238 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
xialluyouyue:
Ubuntu下搭建nodejs+express+mongodb环境简单教程 -
k317544294:
Good 陈迪峰
(开源游戏) DOTA音效版 俄罗斯方块 -
基德KID.1412:
su1216 写道竖线代表或者,不代表替换
对哦~ 谢谢你的提 ...
正则表达式中特殊字符的用法(收藏) -
su1216:
竖线代表或者,不代表替换
正则表达式中特殊字符的用法(收藏) -
qiqijianglu:
基德KID.1412 写道qiqijianglu 写道基德KI ...
【高斯消元 求期望】HDU 4418 Time travel
此题乃师兄[ TT_last ]原创题!Orz膜拜一下
Problem Description
As we know , to caculate the sum ofis hard if the n is large,because today is Valentines Day,to make this problem more easy ,you only need to caculate the sum mod c
Input
There are multiply testcases. Each testcase, there is one line contains two integers n,c;(1<=n <= 10^1000000,1<=c <=1000000000
Output
For each testcase, output an integer, denotes the result of the sum mod c
Sample Input
2 4
3 5
Sample Output
0
2
Author
TT_last
计算这个的公式: n*2^(n-1)
高次取模降幂公式:
Phi是欧拉函数
a simple problem
Problem Description
As we know , to caculate the sum ofis hard if the n is large,because today is Valentines Day,to make this problem more easy ,you only need to caculate the sum mod c
Input
There are multiply testcases. Each testcase, there is one line contains two integers n,c;(1<=n <= 10^1000000,1<=c <=1000000000
Output
For each testcase, output an integer, denotes the result of the sum mod c
Sample Input
2 4
3 5
Sample Output
0
2
Author
TT_last
计算这个的公式: n*2^(n-1)
高次取模降幂公式:
Phi是欧拉函数
#include <iostream> #include <fstream> #include <algorithm> #include <string> #include <set> //#include <map> #include <queue> #include <utility> #include <stack> #include <list> #include <vector> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <ctype.h> using namespace std; #define L long long #define inf 0x3fffffff char s[2000005]; L qmod (L a, L b, L c) //快速幂取模 { L k = 0, i, d[40], res = 1; while (b) d[k++] = b % 2, b >>= 1; for (i = k - 1; i >= 0; i--) { res = res * res % c; if (d[i] == 1) res = res * a % c; } return res; } L Euler (L n) //求欧拉函数值 { L i, res = n; for (i = 2; i * i <= n; i++) { if (n % i == 0) { n /= i, res = res - res/i; while (n % i == 0) n /= i; } } if (n > 1) res = res - res/n; return res; } int main() { L tp, c, len, n, k1, k2, i, phi, res; while (~scanf ("%s%lld", s, &c)) { len = strlen (s); tp = 0; for (i = 0; i < len; i++) { tp *= 10; tp += s[i] - '0'; if (tp >= c) tp %= c; } k1 = tp; //k1是n%c i = 1; while (s[len-i] == '0') //n变成n-1 s[len-i] = '9', i++; s[len-i]--; phi = Euler (c); n = -1; if (len < 11) sscanf (s, "%lld", &n); if (n == -1 || n >= phi) //用降幂公式的条件 { tp = 0; for (i = 0; i < len; i++) { tp *= 10; tp += s[i] - '0'; if (tp >= phi) tp %= phi; } tp += phi; } else tp = n; k2 = qmod (2, tp, c); //k2是2^(n-1)%c,其中n-1已降幂 res = k1 * k2 % c; //相当于(n%c*2^(n-1)%c)%c printf ("%lld\n", res); } return 0; }
评论
2 楼
基德KID.1412
2011-08-08
sgeteternal 写道
原来有高次降幂!甘样确实唔会超时鸟 爽!
1 楼
sgeteternal
2011-08-08
原来有高次降幂!甘样确实唔会超时鸟 爽!
发表评论
-
HDU 4746 Mophues
2013-10-01 17:29 3021莫比乌斯函数完整定义的通俗表达: 1)莫比乌斯函数μ(n ... -
HDU 3221 Brute-force Algorithm
2013-05-04 13:31 1723/* * [题意] * 略 * [解题方法] ... -
UVA 10168 Summation of Four Primes
2013-02-14 21:48 1840/* * [题意] * 将一个数拆成四个素数的和, ... -
UVA 10139 Factovisors
2013-02-09 22:56 2198/* * [题意] * 判断n!是否能被m整除(n ... -
UVA 10104 Euclid Problem
2013-02-09 22:50 1542新手请进:扩展欧几里德入门 /* * ... -
UVA 10006 Carmichael Numbers
2013-02-08 08:27 2480/* * [题意] * 输入n,若满足如下两个条件 ... -
UVA 10110 Light, more light
2013-02-08 08:23 1437/* * [题意本质] * 输入n,如果n的约 ... -
【polya+Euler】HDU 2239 机器人的项链
2012-08-20 13:06 1483KIDx的解题报告 题目 ... -
HDU 1979 Fill the blanks
2012-08-20 12:40 1124KIDx的解题报告 题目链接:http://ac ... -
【生成树计数】HDU 4305 Lightning
2012-08-16 15:45 2682KIDx的解题报告 题 ... -
【扩展欧几里德】SGU 106
2012-05-22 23:57 2384KIDx的解题报告 题目链接:http://acm.s ... -
【数论+容斥】POJ 1091 跳蚤
2012-05-17 13:11 3343KIDx的解题报告 题目链接:http://poj.o ... -
【数论法求一堆数的最小公倍数,结果高达几千位】LOJ 1024 Eid
2012-02-10 16:22 1807KIDx的解题报告 题意:求n个数的最小公倍数,结果很大 ... -
【预处理+卡特兰数+乘法逆元+二分查找】LOJ 1170
2012-01-14 12:57 2283KIDx 的解题报告 题目链接:http://ligh ... -
【快速幂取模】fzu 1752 A^B mod C
2011-11-25 23:32 3669KIDx 的解题报告 参考《算法艺术与信息学竞赛》: 题目 ... -
【高次幂取模的应用】HDU 3609 Up-up
2011-11-25 22:42 2293KIDx 的解题报告 题目很容易看懂:http://acm.h ... -
模线性方程组-非互质中国剩余定理 (更新于2012/5/18)
2011-11-18 19:03 4720KIDx 的解题报告 该专题必备知识:解模线性方程 http: ... -
【素数筛法小结】fzu 1607 + fzu 1753
2011-11-16 23:06 1712KIDx 的解题报告 http://acm.fzu.edu.c ... -
HDU 1410 PK武林盟主
2011-10-02 16:28 1157KIDx 的解题报告 题目链接: http://acm.h ... -
大连2011ACM网络赛【5道水题总结】……很黄很暴力
2011-09-04 18:04 2586KIDx 的解题报告 http://acm.hdu.ed ...
相关推荐
在计算机科学与数学领域中,快速幂取模(也称作模幂运算)是一种非常实用且高效的算法,广泛应用于密码学、信息安全以及高性能计算等领域。对于大整数的幂次运算与取模操作,传统的逐个相乘的方法效率低下,不适用于...
快速幂取模算法在程序设计竞赛和数学建模中被广泛应用,如计算大整数的阶乘、求解斐波那契数列、矩阵快速幂等。理解并掌握快速幂取模算法能够显著提高处理这类问题的效率,对于参加算法竞赛或解决相关问题的程序员来...
快速幂在计算幂次时大大减少了乘法次数,尤其在处理高次幂时,效率比直接乘法要高得多。大数取模则使得大整数加法可以在模`p`的范围内进行,避免了整数溢出的问题。这两种算法在解决数论问题、加密算法(如RSA)、...
这种算法通过将指数二进制化,将一次乘方运算转化为多次平方和乘法运算,大大减少了计算复杂度。 模运算则是取余运算,如计算a除以b的余数,通常表示为a % b。在大数幂模运算中,我们不是简单地计算出大数乘方的...
总的来说,"任意大整数的任意次幂"的C语言实现是一个深入理解和运用算法的好例子,它展示了如何高效地处理大整数并进行高次幂运算,这对于编程技能的提升和问题解决能力的培养具有重要意义。学习这个程序可以帮助...
大数运算处理的是超出普通整型数据类型范围的数值,通常涉及的运算包括加法、减法、乘法、除法、取模以及幂运算和模幂运算。在给定的"大数运算包含加,减,乘,除,取模,幂运算,模幂运算。支持十进制运算,二进制...
快速幂算法是指快速计算幂式的余数,即快速幂取模算法。它的主要应用场景是在程序设计过程中,需要快速计算大数的余数,以提高计算效率。 知识点2:快速幂算法的原始实现 原始的快速幂算法可以用以下公式表示:ans ...
在计算机科学中,当涉及到大整数运算时,如求幂,普通的整数类型(如int或long long int)往往无法满足需求,因为它们有固定的位宽限制。...这种方法在实际应用中更为常见,特别是在需要频繁计算幂的情况下。
快速幂算法及其变体如快速幂取模,在现代计算科学中扮演着重要角色,尤其是在处理大数据集和高性能计算需求的场合下。通过合理利用二进制特性及同余定理,快速幂能够有效降低运算次数,提高计算效率。无论是理论研究...
快速幂算法,也被称为快速幂取模或Exponentiation by Squaring,是一种高效的计算大整数幂的方法,尤其在处理模运算时更为显著。在计算机科学和算法设计中,快速幂算法是解决“求a的b次方对c取模”的问题时的一种...
通过不断平方和取模,可以高效地计算出高次幂的值。在计算组合数取模时,可以先利用快速幂计算阶乘的模p值,然后进行相应的除法操作。 在处理组合数取模问题时,还需注意模算术的一些基本性质,如中国剩余定理、同...
4. **快速求幂取模**:在实际应用中,往往需要对结果进行取模操作,以避免溢出。该方法利用了“积的取余等于取余的积取余”这一性质。 ```c int pow(int a, int n, int b) { int result = 1; a = a % b; while ...
总的来说,幂模运算在密码学和其他领域中具有广泛的应用,而高效的幂模运算算法,如蒙格马利快速幂模运算,是这些应用的基础。通过理解和实现这样的算法,我们可以更好地理解并优化计算过程,提高计算效率。
在提供的文件列表中,"Rabin-Miller.h"可能包含了Rabin-Miller素数测试的函数声明和定义,"modexp.h"可能实现了快速幂取模的蒙格马利乘法算法,而"bool.h"可能是包含布尔类型定义和相关操作的头文件。这些文件共同...
快速幂 快速幂算法是一种高效的计算幂运算的算法,它通过将指数进行二进制拆分,并利用指数的二...此外,在实际应用中,还需要注意处理底数为0或指数为0的特殊情况,以及考虑取模运算的需求,以满足不同的应用场景。
这个关系在诸如判断奇偶性、素数测试、模幂运算、最大公约数计算等领域都有广泛的应用。例如,如果a ≡ b (mod p)且p是素数,那么a^p ≡ a (mod p),这是费马小定理的一个基础。 此外,模运算具有以下基本性质: 1....
虽然这种方法简单,但效率不如快速幂高。 4. **模运算优化**:如果问题涉及模运算,例如求`a^(b^c) mod m`,可以使用模幂运算进一步提高效率。每次计算后对模数`m`取模,避免了中间结果过大。 5. **动态规划**:在...
2. **矩阵的快速幂分解**:将一个大幂次n表示为2的幂次的和,例如n = 2^k + r,然后通过以下步骤计算A^n: - 先计算A^2,然后用这个结果快速计算A^(2^2),A^(2^3),等等,直到2的幂次足够大,可以覆盖n的一部分。 ...
详情介绍:https://www.yuque.com/sxbn/ks/100010263 在本次大作业中,实现了如下基本算法: 加、减、乘、除、移位、幂取模的高精度算法 利用快速幂和牛顿迭代法加速取模运算 中国剩余定理 Miller Rabin检测
在实际应用中,快速幂通常用于求解模幂运算,即计算 `a^n mod m`。在这种情况下,每次乘法之后都要取模,以确保结果始终在模数范围内。 矩阵快速幂是快速幂的一种扩展,它不仅适用于整数的幂运算,还可以用于矩阵的...