
------线段树
fisty
hi
展开
-
【转】线段树总结
之前做了些线段树相关的题目,开学一段时间后,想着把它整理下,完成了大牛NotOnlySuccess的博文“完全版线段树”里的大部分题目,其博文地址Here,然后也加入了自己做过的一些题目。整理时,更新了之前的代码风格,不过旧的代码仍然保留着。 同样分成四类,不好归到前四类的都分到了其他。树状数组能做,线段树都能做(如果是内存限制例外),所以也有些树状数组的题目,会标示出来,并且放到其原创 2014-08-19 20:47:23 · 497 阅读 · 0 评论 -
线段树模板(区间更新)
struct tree{ LL sum[MAX_N << 2]; LL add[MAX_N << 2]; void pushup(int k){ sum[k] = sum[k<<1] + sum[k<<1|1]; } void pushdown(int k, int m){ if(add[k]){ a原创 2015-07-26 11:55:40 · 689 阅读 · 0 评论 -
hdu4521 小明系列问题——小明序列(线段树做法)
/* ***********************************************Author :fistyCreated Time :2014/12/31 22:21:52File Name :hud4521.cpp************************************************ */#include #in原创 2015-01-01 22:08:28 · 536 阅读 · 0 评论 -
12436 - Rip Van Winkle's Code
/******************** * Author:fisty * Data:2014-11-5 * uva12436 * 线段树 成段更新 * ****************/#include #include #include using namespace std;#define MAX_N 250000typedef long long ll;str原创 2014-11-05 22:31:22 · 624 阅读 · 0 评论 -
Just a Hook hdu1698
/**************** * Author:fisty * Data:2014-10-17 * hdu1698 * 线段树成端更新 *****************/#include #include using namespace std;#define lson l, m, k << 1#define rson m+1, r, k << 1|1const i原创 2014-10-18 12:26:15 · 450 阅读 · 0 评论 -
poj3468 A Simple Problem with Integers
线段树功能:update:成段增减 query:区间求和原创 2014-10-18 17:07:40 · 437 阅读 · 0 评论 -
poj 2828 Buy Tickets
线段树结点存储的是当前区域的空位置数量。原创 2014-10-04 17:27:45 · 499 阅读 · 0 评论 -
hdu 2795 Billboard
/******************************** * Author:fisty * Data:2014-10-3 * hdu 2795 * 线段树 单点更新 ********************************/#include #include #include using namespace std;#define lson l, m,原创 2014-10-03 11:59:03 · 432 阅读 · 0 评论 -
poj 2991
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;原创 2014-10-29 11:55:20 · 429 阅读 · 0 评论 -
poj 2886 Who Gets the Most Candies?
#include #include #include #include using namespace std;#define MAX_N 5000000typedef pair PII;const int antiprime[]={1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560,100原创 2014-10-02 17:42:58 · 406 阅读 · 0 评论 -
.hdu4288 Coder & CF85-DSum of Medians
有三种类型的操作,(1)."add x",表示往集合里添加数x。(2).“del x”表示将集合中数x删除。(3).“sum”求出从小到大排列的集合中下标模5为3的数的和。集合中的数都是唯一的原创 2014-11-12 22:44:48 · 498 阅读 · 0 评论 -
hdu1394 逆序数-线段树
/******************************************* Date:2014/9/30 Author:fisty hdu1394 线段树 每次把x从0移到最后时 因为序列为[0, n-1],若最前面一个数为x,序列中比x 小的数为[0, x-1], 共x个,比x大的数为[x+1, n-1], 共n-x-1个,将x移到最后,比x小的原创 2014-09-30 22:46:11 · 440 阅读 · 0 评论 -
poj2528 贴海报
大致题意:有一面墙,被等分为1QW份,一份的宽度为一个单位宽度。现在往墙上贴N张海报,每张海报的宽度是任意的,但是必定是单位宽度的整数倍,且 解题思路:水题,区间压缩映射(离散化)+ 线段树 首先建立模型:给定一条数轴,长度为1QW,然后在数轴上的某些区间染色,第i次对区间染色为i,共染色N次。给出每次染色的区间,问最后能看见多少种颜色。原创 2014-10-26 22:34:38 · 788 阅读 · 0 评论 -
hdu5289 Assignment --2015多校训练赛(一)
题意:给定一串数字,里面存在多少个区间[l, r] 使得里面的最大值与最小值之差小于k。思路:用RMQ预处理出所有区间的最大值与最小值之差。之后枚举左端点L, 二分处理差值小于k的最左边端点R,把所有的R-L+1加上就是答案。/*********************************************** * Author: fisty * Cr原创 2015-08-21 21:03:17 · 450 阅读 · 0 评论