线段树
文章平均质量分 59
xtttgo
这个作者很懒,什么都没留下…
展开
-
ZOJ1610 Count the Colors(线段树区间更新)
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610题意:一块8000长度的板子,每次覆盖啊(a,b)的格子颜色为c。覆盖的时候不包括两个端点样例解释:50 4 40 3 13 4 20 2 20 2 31 12 13 15是5步操作,板子8000长度是不变的原创 2015-08-27 11:35:41 · 324 阅读 · 0 评论 -
HDU 5818 多校第七场 1010 Joint Stacks (线段树)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5818 题解说这题有O(n)的做法,并没有想到,只想到线段树的。 直接把两个栈同时在一颗线段树里操作,标记一下每个区间A有几个,B有几个,然后merge的时候区间更新一下,相互翻转一下个数。每次查询的时候,实际上就是查询最右边的A或者最右边的B,pop掉的空位就留着不要了。原创 2016-08-09 17:17:04 · 374 阅读 · 0 评论 -
HDU 5306 Gorgeous Sequence(线段树)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5306 三种操作: 0 x y t: 使这个区间的值变成min(t,a[i])。 1 x y: 区间最大值 2 x y: 区间和1和2都是常见操作,就是这个0操作很难搞定。参考了吉如一论文。感觉非常的强。区间的max可以看做是区间标记,我们可以维护3个值,区间最大值,区间次大值,区间最大值的个数。然原创 2016-08-15 16:49:43 · 837 阅读 · 0 评论 -
HDU3016 Man Down(线段树)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3016 题意:有n块板子,一个人从最高的板子开始往下跳,每次只能从一个板子的左或者右端点往下跳,同一个高度只会有一块板子。问你到最下面,能获得的最大分数是多少。如果中间分数<0了,游戏直接结束,输出-1。 思路:这题想到线段树好像就可以直接模拟了。因为跳下来只能从左或者右,所以一块板子的价值就是l和r处原创 2016-07-09 14:19:18 · 648 阅读 · 0 评论 -
POJ2886 Who Gets the Most Candies?(反素数+线段树模拟约瑟夫环)
传送门:http://poj.org/problem?id=2886 这题真是太厉害了。。 我们要先知道反素数:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0if(val[pos]>0){ k=(((k-1+val[pos]-1)%mod)+mod)%mod+1; //k-1表示去掉本身,val[pos]-1在后面原创 2016-07-04 11:22:28 · 252 阅读 · 0 评论 -
HDU5692 Snacks(dfs序 + 线段树)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5692 两场百度之星打的十分郁闷,但是也发现了我还是有很多的知识不能灵活运用,比如这题,dfs序我是懂的,线段树也是懂的,但是就是不知道怎么来做这题。 赛后看了takio菊苣的代码,觉得代码风格非常的清晰,很多地方加了空格以后看起来确实清楚很多。准备学习一下,虽然很影响手速,但是也慢慢改一原创 2016-05-23 13:01:33 · 596 阅读 · 0 评论 -
HDU3727 Jewel(主席树)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3727 这题还是挺需要细心的,算是主席树一个挺好的练手题了。 题意:输入n,再输入n个操作,操作有四种 Insert X:插入x到序列末尾 query1 L R X:在当前序列中的[l,r]区间找第x小的数。 query2 X:在当前序列中,输出X是第几小的数。 query3 X:找到当前序原创 2016-05-20 21:46:00 · 523 阅读 · 0 评论 -
HDU2665 Kth number(主席树入门)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2665 主席树呢,就是可持久化线段树,非常神奇。我在B站看了qsc大神的视频之后就大概懂意思了,先做个入门题,再慢慢学。 打个广告:http://www.bilibili.com/video/av4619406/ 题意是求区间内第k大的数(实际上是k小),主席树是这样做的,把n个数离散化之后建一个线段原创 2016-05-20 13:31:52 · 1850 阅读 · 0 评论 -
POJ 3368 Frequent values(线段树区间合并)
传送门:http://poj.org/problem?id=3368 题意:输入一个不减少的序列,然后输入q个查询,每次查询一个区间,输出这个区间内出现最多次数的数字的次数,但是因为序列已经是排序好的,所以相等的数字一定是相邻的。所以用线段树,记录每个区间的最左边的数字,和最右边的数字,左边的连续长度,右边的连续长度,最长的总长度。然后查询的时候区间合并一下就可以搞了。#include <cstd原创 2016-05-02 15:51:09 · 290 阅读 · 0 评论 -
HDU 1255 ( 覆盖的面积 ) 矩形面积并
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255矩形面积并,不过题目要求的是覆盖两次以上的面积,这样的话,就在线段树里增加一个变量表示覆盖两次以上的长度,更新的时候注意一下这个变量就可以了代码:#include#include#includeusing namespace std;#define lson l,m,rt<<1原创 2015-12-29 14:57:06 · 392 阅读 · 0 评论 -
HDU 1542 Atlantis (矩形面积并)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1542刚刚学会的矩形面积并,从下往上扫描,对x坐标离散化,在离散化后的x坐标上建立线段树,对于每条线段,二分找到左右端点,然后不断更新线段并统计面积代码:#include#include#include#include#includeusing namespace std;#de原创 2015-12-29 14:51:22 · 243 阅读 · 0 评论 -
POJ2828 Buy Tickets(线段树求前n个人,单点更新)
链接:http://poj.org/problem?id=2828题意:一个排队的队列T组操作每次输入a b表示在第a个人后面插队,插队的人是b最后输出整个队伍的顺序思路:采用从后往前推的思路,往队列中填人在代码里解释的很清楚了,很好的题目!!#include#include#include#include#include#in原创 2015-09-02 17:15:43 · 314 阅读 · 0 评论 -
HDU 5828 多校第八场 1008 Rikka with Sequence(线段树--数据加强版)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5828题意:三种操作,一种是区间增加,一种是区间开方,一种是区间求和。原思路(数据已加强,这个方法已经过不了):很快能想到,如果一个100000的数字,最多开方个四五次以后,就变成1了,而且sqrt(1)=1,那么我们就可以在更新的时候想到一个很方便的剪枝,就是,如果这个区间的最大值是1,也就是这个区间全部原创 2016-08-11 17:26:47 · 1678 阅读 · 6 评论