快速幂
Keep_Trying_Go
无
展开
-
快速幂和快速乘
快速幂用来计算形如: 一:快速幂 a底数,b为指数,m为模数 #define ll long long ll quick(ll a,ll b,ll mod){ ll ans=1; while(b){ if(b&1){ ans=(a*ans)%mod; } a=(a*a)%mod; b>>=1; } return ans; } 二:快速乘 快速乘1:时间复杂度为O(logb) #define ll long long ll quick(ll a,ll原创 2021-05-01 14:25:54 · 155 阅读 · 0 评论 -
HDU1576
求解逆元的四种方法: //方法一: //扩展欧几里得算法 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; const ll maxx=1e9+7; const int mod=9973; ll n,m; ll Exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x=1;y原创 2021-03-06 11:53:51 · 134 阅读 · 0 评论 -
HDU3037(卢卡斯定理)
我感觉这几种方法都是模版题: 方法一: #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; const ll maxx=1e8+7; ll a,b,p; ll Exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x=1;y=0; return a; } ll r=Ex原创 2021-03-06 11:50:58 · 149 阅读 · 0 评论 -
HDU4349
HDU4349 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; const int maxx=1e5+10; const int mod=1e6+9; ll a; int main(){ while(cin>>a){ ll ans=1; while(a){ if(a&1)ans*=2;原创 2021-03-06 11:48:53 · 109 阅读 · 0 评论 -
HDU1097
快速幂求解: HDU1097 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; const ll mod=10; ll a,b; ll pow_mod(ll a,ll b,ll mod){ ll ans=1; a%=mod; while(b){ if(b&1){ ans=(ans*a)%mod;原创 2021-03-06 11:48:07 · 124 阅读 · 0 评论 -
HDU1061
快速幂求解: HDU1061 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; const ll mod=10; ll a,b; ll pow_mod(ll a,ll b,ll mod){ ll ans=1; a%=mod; while(b){ if(b&1){ ans=(ans*a)%mod;原创 2021-03-06 11:46:44 · 129 阅读 · 0 评论 -
poj1995
快速幂求解: poj1995 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long ll; const ll maxx=1e5+7; ll a,b; ll p; ll pow_mod(ll a,ll b,ll mod){ ll ans=1; while(b){ if(b&1){ ans=(ans*a)%mod;原创 2021-03-06 11:45:41 · 196 阅读 · 0 评论