数据结构-线段树
炒饭君
这个作者很懒,什么都没留下…
展开
-
HDU 2227 Find the nondecreasing subsequences (线段树)
Find the nondecreasing subsequencesTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1235 Accepted Submission(s): 431Problem Descr原创 2013-09-01 14:22:52 · 869 阅读 · 0 评论 -
HDU 4902 Nice boat(数据结构-线段树)
HDU 4902 Nice boat(数据结构-线段树)题目大意:给定n个数,m个操作,”1 L R X“ 表示把LR区间的数同时置为X,"2 L R X "表示把LR区间大于X的数比如Y置为gcd(X,Y)。解题思路:区间操作,一下子就想到了线段树,但是注意线段树的优化,只要维护记录最大值的maxc,以及bool记录这段是否相等这两个变量即可,详细还请参照我的代码。原创 2014-08-15 19:14:49 · 1007 阅读 · 0 评论 -
HDU 4831 Scenic Popularity (线段树)
HDU 4831 Scenic Popularity (线段树)题目大意: T组测试数据,每组首先一个n表示 旅游区和休息区 共有 n个。 接下来是n行介绍,每行两个数字,第一个表示位置,第二个表示热度,如果热度为0表示休息区,否则为景区,休息区的热度与最近景区的热度相同,如果(左边和右边)两个景区距离相同,休息区的热度取热度高的。 经接着m,表示m组询问,Q x ,表示 热度小于等于x的有多少个。 U 表示改变某个景区的热度。解题思路: 对于Q操作的询问,很明显是维护的一个前缀和,因此想到用原创 2014-05-26 12:59:47 · 1028 阅读 · 0 评论 -
HDU 1264 Counting Squares (线段树-扫描线-矩形面积并)
HDU 1264 Counting Squares (线段树-扫描线-矩形面积并)题目大意: 给定你一些矩形左下右上角坐标点,或者左上右下坐标点,求这些矩形的面积并。解题思路:利用线段树扫描线的知识,此题不需要离散化。原创 2014-05-10 12:10:58 · 1137 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number (数据结构-线段树)
HDU 1394 Minimum Inversion Number (数据结构-线段树)题目大意:求逆序数。也就是给你一个序列,每次求逆序数,然再把第一个数放到这个序列的末尾,构成新的序列。问你这n个序列的最小的逆序数。解题思路:1、对于每个序列,其原来的逆序数记为 pre , 如果当前把该序列 第一个数 a[0] 移动到尾部,那么新序列的逆序数为 pre-a[i]+(n-a[i]-1)因为序列中比a[i]大的数有 n-a[i]-1 个,比a[i]小的有 a[i]个。因此只需求出原创 2014-05-10 11:33:19 · 898 阅读 · 0 评论 -
POJ 3162 Walking Race (DFS + 线段树)
POJ 3162 Walking RaceDFS + 线段树#include #include #include #include using namespace std;const int maxn=1000010;struct edge{ int u,v,w; int next; edge(int u0=0,int v0=0,int w原创 2013-08-19 12:12:49 · 1273 阅读 · 0 评论 -
HDU 3016 Man Down (线段树+dp)
Man DownTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1391 Accepted Submission(s): 483Problem DescriptionThe Game “Man Down 1原创 2013-10-05 14:00:05 · 1079 阅读 · 0 评论 -
POJ 3415 Max Sum of Max-K-sub-sequence (线段树+dp思想)
Max Sum of Max-K-sub-sequencePOJ 3415 Max Sum of Max-K-sub-sequence (线段树+dp思想)题目大意:T 组数据,求 n 个数 连续子串的最大和是多少,子串要求长度不超过 k,以及这是个环形,如果多解,满足起点be最小,其次终点en最小解题思路:枚举每个起点be,终点en一定是在 be<=en<=be+k-1 这个范围内,所以求这个范围内的连续最长和即可,可以用 sum[en] -sum[be-1] ,其中sum[x]表示前x个数的和,原创 2013-09-04 21:42:38 · 1058 阅读 · 0 评论 -
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)PandaTime Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1816 Accepted Submission(s): 6原创 2013-09-10 22:53:01 · 1269 阅读 · 0 评论 -
HDU 3607 Traversal (线段树)
TraversalTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 899 Accepted Submission(s): 320Problem DescriptionXiao Ming is trave原创 2013-09-01 15:22:09 · 923 阅读 · 0 评论 -
HDU 4052 Adding New Machine(矩形面积并)
HDU 4052 Adding New Machine(矩形面积并)题目大意: w*h的格子,现在有n个矩形上已经摆放了东西,现在你要放一个东西长度为m,问你有多少种方法?解题思路: 枚举没用的情况,如果东西横着放 (1)如果碰到障碍物,也就是如果 某个东西占着Xi1,Yi1,Xi2,Yi2,那么max(xi1+1-m,0) , x2 y1y2这片矩形区域就不能放东西。 (2)还有就是被墙当着,也就是max(0,w+1-m),w,0,h这片矩形区域就不能放东西。原创 2014-10-04 19:26:56 · 1338 阅读 · 0 评论