线段树
Kiwi21
这个作者很懒,什么都没留下…
展开
-
HDU 1698 Just a Hook
#include #include #define size 100010 struct node { int l,r,sum,add; }tree[size<<2]; void pushup(int n) { tree[n].sum=tree[n<<1].sum+tree[n<<1|1].sum; } void build(int l,int r,int root) { tree[root原创 2014-07-25 10:50:50 · 433 阅读 · 0 评论 -
[kuangbin带你飞]专题七 线段树
点击打开链接 A(hdu 1166 敌兵布阵 )中文体面,线段树单点更新,求一段区间和 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf原创 2015-10-01 15:05:56 · 880 阅读 · 0 评论 -
UVA 11235 Frequent values
求区间最多相同数的数量是多少,因为数列是排序好的,所以直接离散了用线段树求比如样例 -1 -1 1 1 1 1 3 10 10 10 离散后就是(1,2)(2,4)(3,1)(4,3)标号为1的数有2个,标号为2的数有4个.....再用Left[i]Right[i]数组记录标号为i的左边界和右边界,方便查询。 查询时就是线段树求最大值了 #include #include #include原创 2015-12-13 17:15:28 · 294 阅读 · 0 评论 -
hdu 5529 ZYB's Premutation
当时想到是nlog(n)的方法,也想到用线段树,可是就是写不出来,只知道a[i]-=a[i-1]就是前面有多少个数比当前这个数大,却没想到如果这时a[i]+1就是当前数组中第几大的数了,当然要倒着求,然后就是用线段树维护一个数组了。没想到写出来这么简单。 #include #include #include #include #include #include #include using na原创 2015-12-06 17:11:51 · 681 阅读 · 0 评论