线段树
文章平均质量分 72
嘎达啊
无名小卒
展开
-
hdu1166
#include #include using namespace std; const int maxn = 50005; int a[maxn]; int sum[4*maxn]; void build(int u, int l, int r) { if(l == r) { sum[u] = a[l]; return ; }原创 2013-05-19 12:19:22 · 360 阅读 · 0 评论 -
hdu1698
#include #include using namespace std; #define lz 2*u,l,mid #define rz 2*u+1,mid+1,r const int maxn = 100005; int flag[4*maxn]; int sum[4*maxn]; void build(int u, int l, int r) { flag[u] = 0;原创 2013-05-19 20:05:51 · 336 阅读 · 0 评论 -
hdu1754
用字符数组输入字符,%s 用c++提交。 #include #include using namespace std; const int maxn = 200005; int a[maxn]; int sum[4*maxn]; void build(int u, int l, int r) { if(l == r) { sum原创 2013-07-07 09:06:51 · 377 阅读 · 0 评论 -
hdu1394
先建立一个空的树; 在读入数据的过程中不断更新树,并计算出最初的序列的逆序对有多少; 还应知道每次将新的序列的第一个y[i]移到最后,sum将减少y[i]个,当然同时还会增加n-1-y[i]; 例如:第一个是3 那么这个序列在3这个位置上必有0,1,2 即减少y[i]个;这三个逆序对;但以前不是3的逆序对 这时却是3的逆序对,即加上n-1-y[i]; 最后求出最小的值即可; #includ原创 2013-07-22 20:55:03 · 467 阅读 · 0 评论 -
线段树总结
目录(?)[+] 一单点更新二成段更新三区间合并四扫描线五其他六结语 出处:http://blog.csdn.net/shiqi_614/article/details/8228102#comments 之前做了些线段树相关的题目,开学一段时间后,想着把它整理下,完成了大牛NotOnlySuccess的博文“完全版线段树”里的大部分题目,其博文地址Here,然后也加入转载 2013-07-22 11:13:10 · 478 阅读 · 0 评论 -
hdu2795
首先建立一个空树,将每个的子叶和根节点的剩余都记录为 w , 在更新的时候判断纸条在哪个位置,每个根节点都用来 存放他的儿子中最大的剩余空间,每存放一个纸条都对应的 子叶都减去这个值, #include #include using namespace std; #define LL(x) (x<<1) #define RR(x) (x<<1|1) #define MID(a, b)原创 2013-07-23 14:03:55 · 427 阅读 · 0 评论 -
poj2828
最后的一个人的位置一定是确定的,在前一个阶段的时候的最后一个人 即(倒数第二个)在当前的队列 他的位置也是确定的,所以倒着排序,如果他的位置上有人那么他的位置一定在这个位置的下一个, 如果下一个有人的话那就在再下一个,如: 4 0 77 1 51 1 33 2 69 设当前的4个位置为 0 0 0 0 69 是第二个位置 即: 0 0 69 0 这时把 69 忽视掉, 33 在第一个位置,即原创 2013-07-24 16:53:21 · 384 阅读 · 0 评论 -
poj 2182
倒着推 和 poj2828 一样 #include #include #include using namespace std; const int maxn = 8008; #define LL(x) (x<<1) #define RR(x) (x<<1|1) #define MID(a, b) ((a+b)>>1) int y[maxn], n; struct node {原创 2013-07-25 11:18:01 · 399 阅读 · 0 评论 -
poj3264
简单线段树 根节点存储最值; #include #include using namespace std; const int maxn = 50005; #define LL(x) (x<<1) #define RR(x) (x<<1|1) #define MID(a, b) ((a+b)>>1) struct node { int lft, rht, hei, low,原创 2013-07-27 10:21:07 · 381 阅读 · 0 评论