数据结构
FightingForFinal
这个作者很懒,什么都没留下…
展开
-
树状数组
#include<bits/stdc++.h>using namespace std;const int maxn=1000;int a[maxn+5];int c[maxn+5];int n;int lowbit(int x){ return x&(-x);}void add(int x,int d){//将a[x]增加d,修改就往右 while(x<=n){原创 2016-07-26 19:03:55 · 216 阅读 · 0 评论 -
rmq区间最值
const int maxn=1000;const int maxb=10;//maxb=log2(maxn)int n;int a[maxn+5];int d[maxn+5][maxb+5];void init(){//初始化d数组 for(int i=1;i<=n;i++)d[i][0]=a[i];//j为0 for(int j=1;(1<<j)<=n;j++){原创 2016-07-26 20:06:23 · 209 阅读 · 0 评论 -
线段树点修改 区间查询
const int maxn=1000;int sum[maxn*4];void build(int cur,int l,int r){ if(l==r){ cin>>sum[cur]; return; } int m=(l+r)/2; if(p<=m)update(cur*2,l,m); else update(cur*2+1原创 2016-07-26 20:39:38 · 530 阅读 · 0 评论