
线段树
文章平均质量分 78
爱生活的程序猿
这个作者很懒,什么都没留下…
展开
-
poj2886
此题需要了解反素数的知识,之前不了解反素数还想把1e5以内的数的因子个数全部打表。。。。此题还有一点,就是线段树的更新操作,删除某节点,这可能是大家之前没有接触到得#include #include#include#includeusing namespace std;const int MAX=5*1e5+20;typedef struct{ char name[1原创 2015-08-09 19:42:35 · 415 阅读 · 0 评论 -
poj3268(线段树)
此题需要求某一区间内的出现最多次数的数的出现次数,此题有个好处就是它是非递减序列。题目的输入输出就让人想起了线段树。。。。每个节点需要保存三个值,一个是区间左边相同数的次数,一个数是区间右边相同数的次数,一个是最多出现次数的个数#include #include#include#include#define mem(a) memset(a,0,sizeof(a))using na原创 2015-08-09 19:45:45 · 387 阅读 · 0 评论 -
hdu3308(线段树,区间合并)
刚开始看到题目时吓到了。。。要求上升子序列,以为是道神题,但仔细一看原来是连续上升子序列,果断变为low题了。在网上看了一些大神的代码,感觉自己的代码简洁了不少,以前学c的一些小知识点也回顾了一遍,继续奋斗!#include #include#include#define lt(a) a<<1#define rt(a) a<<1|1#define md(a,b) (a+b)>>1usi原创 2015-09-04 17:37:46 · 383 阅读 · 0 评论 -
hdu1542(线段树+扫描线)
裸的扫描线,学习扫描线的题目。具体扫描线的原理我不讲了,我是看大神们的博客懂得,就算写也没大神屌。下面我给出我的代码,里面的注释是我认为比较重要的地方#include #include#include#includeusing namespace std;const int MAX=210;int N;double y[MAX];double sum=0;typedef stru原创 2015-09-05 22:37:47 · 444 阅读 · 0 评论 -
hdu1540(线段树区间合并)
这题是个很恶心的题,区间合并是比较裸的。但这题有的东西没有叙述清楚,题目上说的是一组数据,但测试数据却是多组数据,这题还有几点需要注意的,一是一个村庄可以被摧毁多次,当然如果你代码写得好,这点也是没关系的。我当时用b^=1来表示每次变化,但如果;连续摧毁两次,我的结果就相当于重建了,后来只有老老实实的写了。所以大家得注意到类似多多次摧毁的问题。后来都改过来了却一直1000多ms wa,我想可能是有原创 2015-09-05 22:28:24 · 978 阅读 · 0 评论 -
hdu3397(线段树区间合并)
是一道坑题。。。大致的思维很好想,只要你知道区间合并,这题的结点维护的变量略多,这题需要用到lazy标记。我用的是一个lazy,写了200行代码,好不容易把样例过了,结果wa。。。瞟了一眼别人的博客,发现大多数是用两个lazy标记,我那时候想到是我lazy这地方有缺陷,我也不想 用两个lazy,一来是麻烦,二来是我根本想不到为什么用两个lazy,套用别人的东西,下次 也 不会做。。就酱紫,调试了半原创 2015-09-04 17:30:37 · 500 阅读 · 0 评论 -
hdu1828(线段树+扫描线求周长)
这题不错,可以更加深入的了解线段树扫面线算法,大家之前可能做过扫描线求矩形面积,但因为求面积的某些局限性,一些细节不用写到就可以a,但求周长不行。首先,介绍下求周长的思路,从左往右在每一次插入一条边后,周长并的累加值==新增的横边+新增的竖边。我们可以发现,插入一条边之后,新增的横边的树木等于区间内连续线段的数目*新增横边的长度,新增的竖边等于插入前后覆盖长度的差值。插入一条出边之后,其实等同原创 2015-09-07 23:22:53 · 2119 阅读 · 0 评论 -
hdu3642(三维转二维扫描线)
比较有意思的一题,刚开始做这题的时候想到的low方法是扫描面,但这种肯定不对。。。想了一段时间,突然发现。。。枚举每个z点,就可以转化为二维上的问题。这题还有一点需要注意,不能简单的枚举每个z点,算每个面上的重叠面积,这点是错的,具体操作请看代码#include#include#include#include#define MAX 1200using namespace std;t原创 2015-09-17 23:31:41 · 567 阅读 · 0 评论