![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树与树状数组
文章平均质量分 77
bubbleoooooo
这个作者很懒,什么都没留下…
展开
-
BestCoder Round #11 (Div. 2) Argestes and Sequence (hdu 5057)
#include#include#define MAXN 100010#define MOD 32768unsigned short tree[MAXN][10][10];char cnt[MAXN][10][10];int a[MAXN];int n,m;int lowbit(int x){ return x&(-x);}void add(int x,int P,int D原创 2014-09-29 10:37:22 · 922 阅读 · 3 评论 -
Codeforces Round #271 (Div. 2)E. Pillars(dp+线段树优化)
题意:给定一个序列,求符合|ai|原创 2014-10-08 21:28:17 · 527 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2)F. Ant colony(线段树)
题意:#include#includeusing namespace std;#define INF 1000000001#define MAXN 100010#define MIN(a,b) a<b?a:b#define lson 2*o,l,m#define rson 2*o+1,m+1,rstruct Node{ int gcd,min,cnt;}t原创 2014-10-09 21:24:06 · 535 阅读 · 0 评论 -
hdu 1542 Atlantis(线段树+扫描线)
先离散y,然后以y为区间建线段树,从左到右,枚举分割线x,一段一段面积累加。Cover记录当前的y区间被几个矩形包含。len记录被覆盖的区间长度。比较机智的地方是Cover并不需要在更新线段树的时候进行更新。一旦这个区间的cover更改了,他可以由之前的小区间的值反更新上来。#include#includeusing namespace std;#define ls原创 2015-03-10 22:38:40 · 378 阅读 · 0 评论 -
hdu 1255 覆盖的面积(线段树+扫描线)
此题与Atlantis类似,只是多了一个记录覆盖两次线长变量ss,ss由覆盖一次的线长变量len进行更新。#include#includeusing namespace std;#define lson 2*o,l,mid#define rson 2*o+1,mid+1,r#define INF 1000000000const int maxn=5010;typedef lon原创 2015-03-10 22:42:48 · 389 阅读 · 0 评论 -
hdu 3308 LCIS (区间合并)
求区间最长最长上升序列长度,是线段树区间合并的典型题目。维护左起最长,区间最长和右起最长三个值即可,因为要求上升序列,还要保存区间端点值。#include#includeusing namespace std;#define lson 2*o,l,mid#define rson 2*o+1,mid+1,r#define INF 1000000000const int原创 2015-03-10 22:32:39 · 359 阅读 · 0 评论 -
hdu 2665 Kth number(函数化线段树)
题意:给定一个序列,问区间内第K大的数是多少。#include#include#include#includeusing namespace std;#define maxn 100005#define lson l,mid#define rson mid+1,rmapms;int node=0;int head[maxn],a[maxn],b[maxn],sum[maxn原创 2015-03-10 22:23:17 · 413 阅读 · 0 评论