随笔分类 -  数据结构-线段树

摘要:【题目链接】 http://poj.org/problem?id=1769 【题目大意】 给出一些排序器,能够将区间li到ri进行排序,排序器按一定顺序摆放 问在排序器顺序不变的情况下,一定能够将最大值交换到最后一位至少需要保留几个排序器 【题解】 我们发现,对于每个排序器,dp[ri]=min(d 阅读全文
posted @ 2017-01-25 23:24 forever97 阅读(148) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 UVA11990 【题目大意】 给出一个数列,每次删去一个数,求一个数删去之前整个数列的逆序对数。 【题解】 一开始可以用树状数组统计出现的逆序对数量 对于每个删去的数,我们可以用线段树求出它在原序列中的逆序对贡献 在线段树的每个区间有序化数据,就可以二分查找出这个数在每个区间的位置, 阅读全文
posted @ 2017-01-24 20:54 forever97 阅读(180) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://poj.org/problem?id=3470 【题目大意】 给出几面墙,均垂直于x轴或者y轴,给出一些鸟的位置(二维坐标点), 鸟只会垂直x轴或者y轴飞行,并且会撞上最近的墙,问每面墙最后会有几只鸟撞上去。 【题解】 我们将所有的二维坐标离散,对xy方向分别进行扫描线, 阅读全文
posted @ 2017-01-23 20:51 forever97 阅读(347) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://poj.org/problem?id=3368 【题目大意】 有一个有序序列,要求区间查询出现次数最多的数 【题解】 维护每个区间左端点和右端点,以及左右的长度,还有区间的答案 每次线段合并的时候,对区间数据进行合并即可。 【代码】 阅读全文
posted @ 2017-01-22 10:49 forever97 阅读(142) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://poj.org/problem?id=3264 【题目大意】 求区间最大值和最小值的差值 【题解】 线段树维护区间极值即可 【代码】 阅读全文
posted @ 2017-01-21 16:35 forever97 阅读(134) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://poj.org/problem?id=2886 【题目大意】 一些人站成一个圈,每个人手上都有一个数字, 指定从一个人开始淘汰,每次一个人淘汰时,将手心里写着的数字x展示 如果x是正数,则淘汰右手边第x个人,否则淘汰左手边地-x个人。 每个人淘汰的时候将获得积分,积分的多 阅读全文
posted @ 2017-01-21 14:55 forever97 阅读(122) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://poj.org/problem?id=1990 【题目大意】 给出每头奶牛的位置和至少要多少分贝的音量才能听到谈话 现在求奶牛两两交流成功需要的分贝*距离的总和。 【题解】 我们将奶牛对于需要的分贝排序,那么在计算的时候, 每头奶牛只要计算和序列前面所有奶牛的答案即可 那 阅读全文
posted @ 2017-01-21 00:16 forever97 阅读(139) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://poj.org/problem?id=2991 【题目大意】 给出一条竖直线,由很多线段组成, 每次可以把中间某个节点的位置逆时针转动一定角度,求每次转动之后这条线终点位置。 【题解】 用线段树维护线段的角度和向量有: vx[x]=vx[lson]+cosα*vx[rso 阅读全文
posted @ 2017-01-20 19:21 forever97 阅读(162) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5700 【题目大意】 给出一个长度为n的数列和m个区间,现在求k个区间,使得他们的区间交内的数列项和最大。 【题解】 将区间按照右端点为第一关键字排序, 那么在从后往前扫描的过程中,已经扫过的部分右端 阅读全文
posted @ 2016-11-20 15:09 forever97 阅读(342) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5820 【题目大意】 在一个大小为50000*50000的矩形中,有n个路灯。 询问是否每一对路灯之间存在一条道路,使得长度为|x1–x2|+|y1–y2|且每个拐弯点都是路灯。 【题解】 只要找到不 阅读全文
posted @ 2016-11-17 18:54 forever97 阅读(256) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5828 【题目大意】 给出一个数列,要求支持区间加法,区间开方和区间和查询操作。 【题解】 考虑开方后会出现成片相同的数字,因此我们在每个区间额外维护区间内数字是否相同的tag,如果区间内数字均相同, 阅读全文
posted @ 2016-11-17 18:52 forever97 阅读(397) 评论(0) 推荐(0) 编辑
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5919 【题目大意】 给出一个数列,每次查询数列中,区间非重元素的下标的中位数。查询操作强制在线。 【题解】 因为查询的是下标,因此,我们直接在下标操作表示这里有没有数字,然后查询k大数即可,非重元素 阅读全文
posted @ 2016-11-17 18:50 forever97 阅读(186) 评论(0) 推荐(0) 编辑