快速幂顾名思义,就是快速算某个数的多少次幂。 其时间复杂度为O(log?N),与朴素的O(N)相比效率有了极大的提高。 核心思想就是 如果$k$是偶数 那么 \(x^ k =(x^{2})^{\tfrac{k}{2}}\) 如果$k$是奇数 那么 \(x ^ k = x * x ^{ ( k - 1 ...
分类:
其他好文 时间:
2020-06-24 23:24:39
阅读次数:
47
有幸打上了wls的举办的第一场比赛 知道一定是矩阵快速幂加速dp,但是递推公式一下子有点难弄 看了题解后才发现可以将这些六边形平放,平放之后很容易发现从第i个到第i+1的关键点是1,2: 因为第i+1个六边形所有点的所有方向的状态,都是由第i个六边形1或2的方向推出的 所以我们只要dp第i个六边形点 ...
分类:
其他好文 时间:
2020-06-16 21:55:22
阅读次数:
77
Luogu 题解 P1226 【[模板] 快速幂||取余运算】 ...
分类:
其他好文 时间:
2020-06-15 23:10:04
阅读次数:
69
这种题目 不算是很套路的数论。 暴力的想法是逐位做 复杂度为$k\cdot n\cdot ln^n$ 容易联想到狄利克雷卷积 只要给最后一个卷积一个I函数即可。 由于狄利克雷卷积 具有交换律和结合律 所以原式=\(I^k*f\) 前者显然可以快速幂做 所以复杂度为$n\cdot ln^n\cdot ...
分类:
其他好文 时间:
2020-06-15 21:03:15
阅读次数:
51
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 解: 浮点数的次方也是拿着移位运算 cur=底数 指数按位&1 ?乘:不乘 cur乘倍 指数右移位 另外判断一下指数exponent的正 ...
分类:
其他好文 时间:
2020-06-14 12:34:45
阅读次数:
61
数论: 快速乘: ll ModMul(ll a,ll b,ll n){//快速积取模 a*b%n ll ans=0; while(b){ if(b&1) ans=(ans+a)%n; a=(a+a)%n; b>>=1; } return ans; } 快速幂: ll ModExp(ll a,ll b ...
分类:
其他好文 时间:
2020-06-13 23:38:02
阅读次数:
91
我是题目 快速幂就是快速求 $a^b$的一种算法 快速幂 思想 : 比如我要求 $6^9$ 首先将幂转化为二进制形式 : \[ 6^9 = 6^{1001} \tag{1} \] 可以得到 : \[ 6^9 = 6^{2^{3}} \times 6^{2^0} \tag{2} \] 由于一个数变成二 ...
分类:
其他好文 时间:
2020-06-13 17:14:52
阅读次数:
47
设 \(f(n,k)\) 为用 \(k\) 张牌组成 \(n\) 的方案数,则 \(f(n,k)=C_4^0 f(n?k,k)+C_4^1 f(n?k,k?1)+C_4^2f(n?k,k?2)+C_4^3 f(n?k,k?3)+ C_4^4 f(n?k,k?4)\) 也就是考虑这 \(k\) 张牌里 ...
分类:
其他好文 时间:
2020-06-11 13:50:51
阅读次数:
54
给定n组ai,bi , pi,对于每组数据,求出ai^bi mod pi 的值。 #include<iostream>#include<cstdio>typedef long long ll;using namespace std;int qmi(int a,int b,int p){ int re ...
分类:
其他好文 时间:
2020-06-09 11:20:14
阅读次数:
71
int qpow(int a, int n) { if (n == 0) return 1; else if (n % 2 == 1) return qpow(a, n - 1) * a; else { int temp = qpow(a, n / 2); return temp * temp; } ...
分类:
其他好文 时间:
2020-06-08 12:51:33
阅读次数:
50