快速运算模板(未完待续)
Posted peter0701
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速运算模板(未完待续)相关的知识,希望对你有一定的参考价值。
快速运算题目(持续更新)
\\(1.\\) \\(Raising\\) \\(Modulo\\) \\(Numbers\\)
快速幂
细节:注意返回答案前取模。
$View$ $Code$
inline long long readl() long long ret=0,f=1; char ch=getchar(); while(ch>‘9‘||ch<‘0‘) if(ch==‘-‘) f=-1; ch=getchar(); while(ch>=‘0‘&&ch<=‘9‘) ret=(ret<<1)+(ret<<3)+ch-‘0‘; ch=getchar(); return ret*f; inline long long qpow(long long a,long long b,long long mod) long long ans=1; while(b) if(b&1) ans=ans*a%mod; a=a*a%mod; b>>=1; return ans%mod; long long a,b,p; int main() a=readl(); b=readl(); p=readl(); printf("%lld\\n",qpow(a,b,p)); return 0;
快速乘(二进制拆分)
$View$ $Code$
inline long long readl() long long ret=0,f=1; char ch=getchar(); while(ch>‘9‘||ch<‘0‘) if(ch==‘-‘) f=-1; ch=getchar(); while(ch>=‘0‘&&ch<=‘9‘) ret=(ret<<1)+(ret<<3)+ch-‘0‘; ch=getchar(); return ret*f; inline long long qpow(long long a,long long b,long long mod) long long ans=1; while(b) if(b&1) ans=(ans+a)%mod; a=(a<<1)%mod; b>>=1; return ans%mod; long long a,b,p; int main() a=readl(); b=readl(); p=readl(); printf("%lld\\n",qpow(a,b,p)); return 0;
快速乘(long double)
以上是关于快速运算模板(未完待续)的主要内容,如果未能解决你的问题,请参考以下文章