
数据结构
锋巅
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树状数组
树状数组主要理解三个函数Lowbit(),pluse(),sum();lowbit()是他们三个当中最难理解的,一切都靠网络,呵呵,另外有意外收获了输入开挂先说下Lowbit()人如其名,指的就是,这个数用二进制表示,最后一个1所代表的数Pluse()也就是从底向上跟新了,他与他的父亲节点下表差为Lowbit();sum()也就是求和,很easy,sum(pos)=C[Lowbit(p原创 2012-11-21 21:39:11 · 549 阅读 · 0 评论 -
HDU1255覆盖的面积
/*这是一道经典题,为啥经典,因为大家都说他是经典题,大家都做他所以说他经典这是杭电上的一道题(HDU1255),本来上周想训练一下自己线段树由于水平太次,两三道线段树,这一题是看了没做这周可是花了将近一天的时间,看了几篇博客,才有些眉目这道题算的是重叠面积,大家应该遇见过这样的情况给你一个区间,再给你些线段,最后问这个区间上被这些线段覆盖的长度比如:给你三条线段原创 2013-03-19 17:39:30 · 1517 阅读 · 0 评论 -
杭电
/*这是杭电1225题,线段树加离散化前几天弄了好久,才明白了一点点*/#include#includeusing namespace std;#define MAX 1100typedef struct{ double x,y1,y2; __int64 flag;}LINE;//用来表示与Y轴平行的直线,也就是矩形平行于Y轴typedef struct{ __in原创 2013-03-23 10:02:56 · 686 阅读 · 0 评论 -
杭电3308
/*杭电3308 LCIS真是做题伤身呀,看了博客,写了一中午,wrong,最后竟然错在了一个1上这是一道区间合并题有两种操作U A B第A个数改为BQ A B输出A B 之间最长连续递增子序列这一题的难点重要在merge(区间合并上)*/#include#includeusing namespace std;#define MAXN 110原创 2013-03-23 09:35:37 · 847 阅读 · 0 评论 -
杭电1574
I Hate It这是个简单的线段树,求的是区间最大值,由于不停的改变,所以用线段树,否则的话RMQ就行了线段树最基本的几个操作,Update(),Build_tree(),Qurry()这三操作是最基础的操作节点存储的就是从第L到R的最大值,最大值不是做儿子就是右儿子#include#include#define N 5000000typedef struct{原创 2013-03-25 17:19:00 · 623 阅读 · 0 评论