POJ 1845 - Sumdiv ( 数论 + 唯一分解定理 + 快速幂取模 )这是一道数论的好题,需要较好的数学基础题意: 给定A,B,求A^B的所有因数的和,再MOD 9901分析:这里用到了数论当中相当一部分知识a. 唯一分解定理任何一个整数都可以分解为若干个素数的幂的乘积的形式A = ( ...
分类:
其他好文 时间:
2014-10-06 19:01:50
阅读次数:
149
矩阵快速幂+二分求前n项和
矩阵快速幂是有模板的,多做几道题就会理解,前提是要会快速幂取模;
之所以用二分是因为求和的过程:A^1+A^2...+A^(k-1)+A^k, k是1e9的,所以暴力求和肯定会TLE,在网上找到
了二分求矩阵和的方法;
公式为 (1+A^(k/2))*(A+A^2+..+A^k/2) 的,所以可以写成二分递归,如果k为奇数的话,su...
分类:
其他好文 时间:
2014-09-10 23:59:01
阅读次数:
601
本学期的数学生涯正式开始,第一个进军的毫无疑问是数论。现在还属于学习和消化阶段,写这样零散地整理知识点,以后再总结。1. 模算术 ( 快速幂取模 )//在O(logn)的时间复杂度完成 a^b % m 的计算//另外还有模算术(a+b)%c =( a%c + b%c ) %c(a-b)%c =( a...
分类:
其他好文 时间:
2014-09-09 21:23:49
阅读次数:
308
题目: UVA - 11029Leading and Trailing(快速幂取模取后三位 + log10()取前三位)
题目大意:给你N的k次方,然后要求你求出这个数的前三位和后三位。
解题思路:因为n和k都很大,这个数求出来是大数,所以可以用快速幂取模求后三位,因为后面的三位和前面的位数的没有关系。前面的三位比较难办。设x = log (n^k) = k * log10(...
分类:
其他好文 时间:
2014-09-09 12:39:58
阅读次数:
215
简单的快速幂取模题但要注意由于a可能很大,相乘会超范围,所以乘前要先模#include #include using namespace std;int quick(int a,int b,int m){ int ans=1; a%=m; while(b){ if(b&1){ ans=(ans...
分类:
其他好文 时间:
2014-08-30 21:38:29
阅读次数:
210
题目链接
题意:斐波那契数列,当长度大于8时,要输出前四位和后四位
思路:后四位很简单,矩阵快速幂取模,难度在于前四位的求解。
已知斐波那契数列的通项公式:f(n) = (1 / sqrt(5)) * (((1 + sqrt(5)) / 2) ^ n - ((1 + sqrt(5)) / 2) ^ n),当n >= 40时((1 + sqrt(5)) / 2) ^ n近...
分类:
其他好文 时间:
2014-08-30 15:11:21
阅读次数:
288
题目链接
题意:求n^n的个位数的值。
思路:快速幂求值
代码:
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
ll a, b, n, m;
struct mat{
ll s[2][2];
mat() {...
分类:
Web程序 时间:
2014-08-29 22:41:18
阅读次数:
229
题目大意:给你一个序列让你求出有多少种组合可以得到2048.结果要对998244353取余。
解题思路:求出不能满足条件的方案数,然后用总的减去不满足的然后乘上其他无关的组合方式,比如3,5这些数字是在构成2048的过程中无用的,所以乘上这些组合出来的情况。
dp[i][j]表示取到第i个2^i的数,其最大的和在j*2^i至(j+1)*2^i-1的方案数。
所以有dp[i][j] += ((...
分类:
其他好文 时间:
2014-08-26 17:23:16
阅读次数:
359
http://acm.hdu.edu.cn/showproblem.php?pid=4965利用相乘的可结合性先算B*A,得到6*6的矩阵,利用矩阵快速幂取模即可水过。 1 #include 2 #include 3 #include 4 #include 5 #define N 1010 6 #d...
分类:
其他好文 时间:
2014-08-22 12:45:36
阅读次数:
262
原文地址:
对于一般的求a^b%c的值,当a,b都在long long范围内,c在1e9的时候,都可以用快速幂取模进行求解。
LL powerMod(LL x, LL k, LL m){
LL res = 1;
while(x %= m, k){
if(k&1) res *= x, res %= m;
x *= x, k...
分类:
其他好文 时间:
2014-08-16 17:08:50
阅读次数:
291