--------数据结构---------
文章平均质量分 80
Werky_blog
这个作者很懒,什么都没留下…
展开
-
模板:并查集
思路:1.先让自己是自己的爸爸 2.下标从1开始,因为城市一般是从1,没有第0个城市。 3.为求统一,一律让大的是小的爸爸,记得swap const int maxn=1005; int father[maxn],ans[1005]; int find(int x){ //查找并认爸爸 if(x!=father[x]) father[x原创 2017-09-23 11:51:16 · 147 阅读 · 0 评论 -
模板:线段树
/*单点更新,区间求和*/ /*应用:1.建空树,可以查询比某值大的数之和,然后单点更新*/ #define N 50050 int num[N]; struct Tree{ int l; int r; int sum; }tree[4*N]; void build(int t,int l,int r){ tree[t].l原创 2017-11-01 12:48:55 · 312 阅读 · 0 评论 -
模板:树状数组
int n,tree[MAXN]; int lowbit(int i){ return i&(-i); } int update(int i,int x){ while(i<=n){ tree[i]+=x; i+=lowbit(i); } } int query(int i){ int原创 2017-11-18 15:11:03 · 115 阅读 · 0 评论 -
模板:主席树
求区间不同数的个数:/* 5 1 1 2 1 3 3 1 5 (3) 2 4 (2) 3 5 (3) */ #include<bits/stdc++.h> #define ll long long int using namespace std; const int maxn=2e5+10; const int maxm=1e6+10; ll read(){ ll x=0,f=...原创 2018-04-30 19:15:03 · 106 阅读 · 0 评论