数据结构
文章平均质量分 78
神奇豆子
这个作者很懒,什么都没留下…
展开
-
HDU 4902 2014多校联赛第四场1006 Nice boat
看到这个题目好纠结来着,一时间不知道从何下手。题目原创 2014-08-01 08:56:37 · 444 阅读 · 0 评论 -
POJ 3237 Tree 树链剖分 边权
这个题目比SPOJ的QTree多了一个u->v内所有边的边权都变为相反数的操作,其他的都是类似的,单点更新,区间查询最大值。因为有了取反操作,因为最小值的相反数是最大值,最大值的相反数是最小值..所以线段树要多记录一个最小值...用这个题的代码我过了SPOJ那个QTREE,当时那个RE错误..并不懂是怎么犯的..#include#include#include#include#原创 2015-09-15 20:08:31 · 306 阅读 · 0 评论 -
POJ 2763 Housewife Wind 树链剖分 边权
单边更新,区间求和....套模板的题目,基本上没有什么难度,就是感觉点权和边权还是有一些差别的,不注意就错了...#include#include#include#include#include#include#includeusing namespace std;#define MAXN 100100struct edge{ int u,v,next;} edg原创 2015-09-15 16:32:40 · 330 阅读 · 0 评论 -
[ZJOI2008]树的统计Count 树链剖分模板
这个题适合学习树链剖分...点权的题目,感觉边权和点权没差...就是有根结点没根结点的差别吧...昨天刚看懂,写了一发SPOJ的QTREE,不过一直RE的很奇怪,是SIGSEGV这个RE错误...而且我对比了kuangbin大神的模板,除了线段树部分没差的...权当AC了。今天就搞了一发这个点权的问题,直接两个dfs搞好树链剖分部分,建立线段树,输入点权直接updata加到线段树上,然后就是喜闻乐原创 2015-09-10 11:32:54 · 261 阅读 · 0 评论 -
DLX模板
#include"stdio.h"#include"algorithm"#include"string.h"#include"iostream"#include"queue"#include"map"#include"vector"#include"string"using namespace std;#define N 1010*100#define M 1010struc原创 2015-06-11 14:12:24 · 502 阅读 · 0 评论 -
HDU 4027 Can you answer these queries? 线段树水题
给定1-n,有两种操作,一是l,r范围内的数字都开方一次,另外是l,r的区间和。数字最大范围是2的63次方,那么2的63次方开方8次就变为1了...所以每个数字最多被更新八次就变成1了,变成1之后就没有必要再次更新了。所以直接单点更新区间求和就好了... 求和函数 query(l,mid,k*2)+query(mid+1,r,k*2+1); 写成query(l,mid,k*2)+(mi原创 2015-08-10 16:13:39 · 279 阅读 · 0 评论 -
HDU 1542 Atlantis 线段树+扫描线
求n个矩形的面积并。看了一下扫描线,这个东西和某场BC的贪心题目类似,就是一个矩形拆成两个线段,标记一下矩形开始的线段和结束的线段,那么这个矩形的面积就是两条线段所在的坐标差*线段长度..就是线段树建立方式和普通的有点差别...[l,r]拆分成两个区间的时候要一个拆成[l,mid],另外一个不是[mid+1,r]而是[mid,r]..然后多加一个push_up可以省好多事...弱的线段树扫原创 2015-08-09 18:40:43 · 375 阅读 · 0 评论 -
HDU 1255 覆盖的面积 线段树+扫描线求面积并
基本和上一题类似...只是push_up函数中多了一部分东西,len1代表被至少覆盖一次的长度,len2代表至少被覆盖两次的长度。一段区间内被覆盖两次的长度有三种情况,一种是整个区间都被覆盖了两次,另外一个是整个区间被覆盖一次,然后左右孩子也有部分被覆盖一次的经历...还有就是左右孩子有部分被覆盖两次...然后和上一题基本不变..#include#include#include#incl原创 2015-08-09 19:37:44 · 356 阅读 · 0 评论 -
POJ 2528 Mayor's posters 线段树+离散化
大概题意:城市里要竞选市长,然后在一块墙上可以贴海报为自己拉票,每个人可以贴连续的一块区域,后来帖的可以覆盖前面的,问到最后一共可以看到多少张海报。刚学的离散化姿势,vector+unique去重,然后lower_bound查找下标...离散化就是只记录出现过的端点..附上弱渣代码:#include#include#include#include#include#include原创 2015-08-09 15:21:03 · 303 阅读 · 0 评论 -
ZOJ 1610 Count the Colors(线段树成端更新,暴力水过)
题意给出了n个操作,把(a,b)之间的线短染色,问最后能看到几段颜色分别是哪几种....因为染色是染的线段 不是a,b之间的所有点....是开区间..但是吧...完全按照开区间又没有办法做..就弄成半开半闭区间,不过那边开都可以....闭区间连样例都过不了另外题目中没出现的线段属于空颜色..不是任何一种...也不要统计..不然就会WA...比如给出(12 1 )(4 5 1),此时的(2,原创 2015-02-08 13:25:55 · 334 阅读 · 0 评论 -
POJ 3264 Balanced Lineup(线段树水题)
大概题意是查询区间内的最大值和最小值的差是多少....也算是区间内最大的差?都一样...很简单 都不用更新只有查询的水题.....我觉得肯定有其他办法....#include#include#include#include#include#includeusing namespace std;struct node{ int l,r,maxi,mini;}data[3原创 2015-02-08 11:44:56 · 374 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers(线段树成段更新)
题意很好理解...这题增量要用int64..增量可以为负...小心数据类型溢出...感觉自己写的lazy操作有点挫...应该说是搓成渣了....不过能AC就好...WA了好多次 干脆都全部换成int64才过了....坑爹的题目#include#include#include#include#include#includeusing namespace std;struct原创 2015-02-07 15:29:42 · 404 阅读 · 0 评论 -
HDU 1698 Just a Hook(线段树成段更新)
大概意思就是屠夫的钩子..有种材料金银铜...长度给出,然后进行成段的材料替换...金3银2铜1,问最后整条钩子的价值是多少...以前写过一个水果的博客...时间复杂度估算起来高,但是实际效果比线段树好多了...链接:HDU 1698 Just a Hook 水过我觉得这个的成段更新是最简单的...上一个写起来好艰难...线段树果然不是强项...#include#include#i原创 2015-02-07 15:39:39 · 356 阅读 · 0 评论 -
HDU 1754 I Hate It(线段树基础)
题意不说了...和上个题目差不多的写法..没啥难度...#include#include#include#include#include#include#include#includeusing namespace std;struct node{ int l,r,x;}data[600000];void build(int l,int r,int k){原创 2015-02-07 14:27:25 · 368 阅读 · 0 评论 -
HDU 1166 敌兵布阵(线段树基础)
中文体面...考察线段树基本操作单点更新,区间查询...因为手边没有以前用的模板,然后就自己写了一个,估计写的比较挫....PS:并差集和剩下的最短路四道题好难的样子...然后就来到了线段树...#include#include#include#include#include#include#include#includeusing namespace std;struc原创 2015-02-07 14:10:52 · 361 阅读 · 0 评论 -
HDU 1698 Just a Hook 水过
线段树成段更新接触的第一个题...不过题目只要求找原创 2014-08-08 10:44:18 · 387 阅读 · 0 评论 -
HDU 4288 Coder 线段树做法不会果断水过
同学加的练习题看着像线段树,但是不会写,拿去原创 2014-08-08 16:09:08 · 462 阅读 · 0 评论 -
HDU4893 2014多校第三场1007 Wow! Such Sequence!
线段树题目...花了一下午时候去做..提交一直WA,不知道错在哪,后来考虑到中间过程原创 2014-07-29 17:15:35 · 454 阅读 · 0 评论 -
HDU 3966 树链剖分 点权
练手的模板题...成段更新,单点查询....点权不同于边权,稍微做一些处理就可以搞定了。不自觉就用了线段树的lazy操作,不用复杂度似乎可以承受?#include#include#include#include#include#includeusing namespace std;#define MAXN 103000struct edge{ int v,next原创 2015-09-15 16:38:40 · 288 阅读 · 0 评论