标签:
【快速幂运算】
long long quickpow(long long x,long long n,long long k) { long long ans=1; while(n>0) { if(n&1) ans=(ans*x)%k; n>>=1; x=(x*x)%k; } return ans; }
【矩阵快速幂】
【树状数组】
#define lowbit(x) x&(-x) void give(int x,int k) { for(int i=x;i<=n;i+=lowbit(i)) a[i]+=k; } int ask(int x) { int ans=0; for(int i=x;i>0;i-=lowbit(i)) ans+=a[i]; return ans; }
【进制转换】
十进制转二进制 while n>0 do begin inc(num); a[num]=n mod 2; n:=n div 2; end; 二进制转十进制 now=1 for i=1 to num do begin ans:=ans+a[i]*now; now:=now*2; end;
【辗转相除法】
int gcd(int a,int b) { while(b>0) { c=b; b=a%b; a=c; } return c; }
标签:
原文地址:http://www.cnblogs.com/onioncyc/p/5758591.html