各类模板

Posted ofshk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各类模板相关的知识,希望对你有一定的参考价值。

快速幂

技术图片
 1 typedef long long ll;
 2 
 3 ll mod_pow(ll x,ll n,ll mod)
 4 
 5     ll res=1;
 6     while(n>0)
 7     
 8         if(n&1)//if(n%2==1)
 9             res=res*x%mod;
10         x=x*x%mod;//把x平方
11         n>>=1;//n=n/2 舍去最后一位
12     
13     return res;
14 
View Code

 

树状数组

查询区间和

引申:查询区间最值差

技术图片
 1 int lowbit(int x)//lowbit(x)表示2^k
 2 
 3     return x&(-x);
 4 
 5 
 6 void update(int x,int k)//在位置x增加k
 7 
 8     while(x<=n)
 9     
10         c[x]+=k;
11         x+=lowbit(x);
12     
13 
14 
15 int sum(int x)
16 
17     int res=0;
18     while(x>0)
19     
20         res+=c[x];
21         x-=lowbit(x);
22     
23     return res;
24 
25 
26 memset(c,0,sizeof(c));//输入记得清空
27 
28 for(int i=1; i<=n; i++)//树状数组处理的是下标为1的数组
29 
30     scanf("%d",&a[i]);
31     update(i,a[i]);//开始的时候每个元素初始值为0,对应位置加a[i]即可
32 
View Code

 

以上是关于各类模板的主要内容,如果未能解决你的问题,请参考以下文章

套用bi模板,轻松搞定各类数据分析报表

各类模板

考前复习_各类模板之补充

线段树之各类模板

各类模板(更新中...)(若有什么特别的需要,可以留下评论)

主席树的各类模板(区间第k大数动,静,区间不同数的个数,区间<=k的个数)