数据结构
文章平均质量分 52
DrCarl
重庆大学acm-icpc集训队队员
展开
-
HDU 4193 Non-negative Partial Sums 【单调队列】
HDU 4193 Non-negative 题解,用到了单调队列、前缀和、循环同构等技巧原创 2016-05-18 23:16:24 · 418 阅读 · 0 评论 -
HDU 1542 Atlantis 【线段树+扫描线】
题目链接 segment tree, scanning line题意矩形面积的并分析最基础的扫描线求矩形面积并的题,离散化后用线段树,这个思想很简单,不再赘述。记录在这里主要是这个线段树的写法,适用于区间反复覆盖,RE了很多次,记在这里方便以后查看。AC代码//HDU 1542 Atlantis//AC 2016-10-19 22:33:31//Segment tree, scan line原创 2016-10-19 22:41:37 · 500 阅读 · 0 评论 -
POJ 3225 Help with Intervals 【线段树】
题目链接 segment tree题意给定集合S,S最初是空集。现对其进行一些操作:与一个集合求交、并、补、对称差。用区间表示出最终的S分析这个题有许多注意的地方(当然可能是我写法不太好),肝了一上午…… 那么首先想到用线段树来解决这个区间覆盖的问题。虽然是实数区间,但注意到区间端点始终是整数。于是我们整体乘2,用偶数来代表整数点,用奇数来代表两整数之间的开区间。比如2就对应[1,1],3就对应原创 2016-10-26 12:00:30 · 375 阅读 · 0 评论 -
HDU 2795 Billboard 【线段树】
题目链接 Segment Tree, single-point update题意有一块h*w的告示板,要向上面贴一些广告,每张广告都想被贴得尽量靠顶端,然后再尽量靠左。现有n块尺寸分别是1*wi的广告(高度都为1)依次贴上去,问没张广告贴得位置。分析首先实际贴得行数肯定是min(h,n),开始没注意这个,被数据范围吓到了。然后这个问题只要记录每一行还剩下多少宽度,然后每贴一个广告就查找尽量靠左并且原创 2016-10-16 15:25:14 · 434 阅读 · 0 评论 -
HDU 4288 Coder 【线段树】
题目链接segment tree, single-point update题意维护一个集合,这个集合可进行以下操作: + 向其中添加一个数(保证之前没有这个数) + 向其中删除一个数(保证集合中有这个数) + 求所有下标%5==3的数的和(从小到大排列) 完成给定的操作,返回sum的值分析求区间和问题,尝试使用线段树。然而是求的有步长的和,怎么处理?首先,每个区间中记录下标模5相同的数的和(原创 2016-10-20 21:04:28 · 421 阅读 · 0 评论 -
SPOJ 3267(DQUERY) D-query 【主席树】【离线树状数组】
题目链接 persistent segment tree题意给一串数列,有q个(1e5的数量级)询问,求i到j间的不同数字的个数分析这个题有几种做法,可以用主席树、离线树状数组,还可以直接用莫队。这里写一下主席树和离线树状数组的做法主席树做法一道主席树的入门题,会了过后看很好做,但初学时还是搞了很久。建主席数的时候用一个map存当前这个数之前最近出现的地方,然后主席数中的每一棵树存的还是某个位置有原创 2016-10-26 19:44:56 · 489 阅读 · 0 评论 -
HDU 4348 To the moon 【主席树+区间修改】
persistent segment tree 题目链接题意给一串初始序列An,并且初始的时间是0,定义以下操作: 1. 给一个区间内的数加上一个值,并且时间加一 2. 查询当前某区间的区间和 3. 查询过去某个时间的某个区间和 4. 回到某个时间序列大小和查询数量级为1e5分析SPOJ上也有这个题,但HDU卡内存严格一些,所以有些方法就不能过了。 首先既然有历史版本,那么就用主席树吧原创 2016-11-16 00:25:27 · 919 阅读 · 0 评论