数据结构:树状数组
skajre
这个作者很懒,什么都没留下…
展开
-
POJ 3321 Apple Tree
把一个苹果分成两个,这样才有区间。dfs分区间之后,一个苹果变成两个,那么c[i]=(a[x]+....+a[i])*2;所以调整的时候要调整两次,取值的时候要除2.//// main.cpp// Richard//// Created by 邵金杰 on 16/7/25.// Copyright © 2016年 邵金杰. All rights reserved./原创 2016-07-25 22:10:08 · 209 阅读 · 0 评论 -
POJ 2828 Buy Tickets(树状数组)
//// main.cpp// Richard//// Created by 邵金杰 on 16/8/20.// Copyright © 2016年 邵金杰. All rights reserved.//#include#includeconst int maxn=200000+100;int c[maxn],no[maxn],num[maxn],ans[maxn原创 2016-08-20 15:56:47 · 186 阅读 · 0 评论 -
POJ 2182 Lost Cows(树状数组)
用c[i]来表示[i-lowbit(i)+1,i]区间内有多少个位置,接着二分查找num[i]+1的位置,接着在相关区间内减去一个位置(这步尤为重要,关乎前面能否查找到正确的位置)。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/20.// Copyright © 2016年 邵金杰. All rights reserved.原创 2016-08-20 15:38:17 · 236 阅读 · 0 评论 -
POJ 2352 Stars(树状数组)
因为按照y排序的,所以只需要考虑x就可以了,树状数组的意思是有一个隐藏数组a[i],代表i点有没有点,如果i点有的话,c数组跟i有关的元素全部更新,然后sum(x)又是a数组从1到x相加,算出小于等于x的个数,那么相应的level要加1。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/20.// Copyright © 2原创 2016-08-20 19:43:52 · 191 阅读 · 0 评论 -
POJ 3067 Japan(树状数组)
树状数组套路就这样,确定一根轴,但是刚学建模不好建。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/21.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;t原创 2016-08-21 14:38:03 · 225 阅读 · 0 评论 -
UVA 11525 Permutation(树状数组)
一开始忘记康托展开的定义了,看完定义就是水题。#include#include#include#includeusing namespace std;const int maxn=50000+5;int c[maxn],a[maxn],s[maxn],vis[maxn];int n;int lowbit(int x) {return x&(-x);}void add(int x,原创 2016-11-08 12:43:20 · 226 阅读 · 0 评论 -
树状数组from维基百科
树状数组(Fenwick_tree),最早由Peter M. Fenwick于1994年以A New Data Structure for Cumulative Frequency Tables[1]为题发表在SOFTWARE PRACTICE AND EXPERIENCE。其初衷是解决数据压缩里的累积频率(Cumulative Frequency)的计算问题,现多用于高效计算数列的前缀和,原创 2016-07-26 10:12:06 · 202 阅读 · 0 评论 -
UVA 1428 Ping Pong(树状数组)
取low=min(a[i]|1#include#include#include#includeusing namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);i++)#define ret(i,a,b) for(int i=(a);i>=(b);i--)#define ss(x) scanf("%d",&x)const int原创 2016-10-21 08:08:20 · 184 阅读 · 0 评论 -
UVA 12086 Potentiometers(树状数组)
#include#include#include#includeusing namespace std;const int maxn=200000+5;int C[maxn],a[maxn];int n;int lowbit(int x) {return x&(-x);}void add(int x,int d){ while(x<=n){ C[x]+=原创 2016-11-02 18:50:58 · 192 阅读 · 0 评论