线段树
TIMELIMITE
Time is not enough. I must hurry up !
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1166 敌兵布阵 线段树 点更新
// hdu 1166 敌兵布阵 线段树 点更新//// 这道题裸的线段树的点更新,直接写就可以了//// 一直以来想要进线段树的坑,结果一直没有跳进去,今天算是跳进去吧,// 虽然十分简单,十分的水,继续加油#include #include #include #include #include #include #include #include #include原创 2015-06-02 21:33:16 · 822 阅读 · 0 评论 -
poj 2991 Crane 线段树 + 区间更新
// 做法: 线段树 + 区间更新 + 简单计算几何// 开始的时候在“挑战”这本书上看到,完全是懵逼状态,啥也不知道,就记一个向量旋转// 之后仔细想了想,旋转角统一转换成向量的形式,对某个s旋转angle角度,就是将s后// 所有的向量旋转angle角度。这样线段树区间更新的意义就出来了。所以线段树维护的// 就是每段的向量,即x,y坐标值,还有lazy标签,注意的是:题目输入的是...原创 2018-06-07 22:01:47 · 325 阅读 · 0 评论 -
poj 1769 dp + 线段树
// 哎没想到dp啊,后续状态基于当前状态,当前状态不会影响后续状态,dp dp dp // // dp[i][j] 第i个sort的时候 最大数在j所需要的最短sort数则 // // dp[i + 1][j] = dp[i][j] 当第i段sort[si,ti] 中 ti != j (即舍弃此sort) // dp[i + 1][j] = mi...原创 2018-06-13 20:06:46 · 315 阅读 · 0 评论 -
hdu 5877 Weak Pair dfs + 线段树(or树状数组)
// hdu 5877 Weak Pair dfs + 线段树(or树状数组)//// 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5877//// 题目大意:// n个节点到有根树,u是v的祖先,每个节点有个权值a[u].求// a[u] * a[v] <= k的有序对的数量。//// 解答://原创 2016-09-10 22:48:26 · 754 阅读 · 0 评论 -
hdu 5592 线段树 + 二分
// hdu 5592 线段树 + 二分 // 解题思路: // 设[1,n]区间逆序对数为f[i],p[i]为当前i位置的数字 // 则x = f[i]-f[i-1]就是[1,i]区间比p[i]大的数.则i - x就是 // 从[1,i]中这个数字排第几.二分这个数字得到答案为x,将x从 // 线段树中删除.单点更新,区间查询. // 提示:线段树中存的是[1,n]各个数字的出原创 2015-12-06 23:32:59 · 605 阅读 · 0 评论 -
hdu 1542 Atlantis 矩形面积并
// hdu 1542 Atlantis 矩形面积并//// 解题思路:// // 将矩形沿着x轴或者y轴切割.然后求和// 具体做法:// 将每个矩形看成是两条线段.将x方向// 坐标离散化.给每个线段一个值,下面线段// 为1,上面线段为-1.将这些线段映射到线段// 树上.具体做法是,只要保存线段的左端点就// 可以了.然后是线段树的基本操作了.更新成原创 2015-10-31 02:11:39 · 500 阅读 · 0 评论 -
poj 3667 Hotel 区间合并
// poj 3667 Hotel 区间合并//// 题目大意://// [1,N]区间内开始为空,有两种操作// 1) 1 a 找到长度为a的区间,并且尽量开头靠左,返回最左的位置// 并check in.// 2) 2 a b 将[a,b-1]区间check out.//// 解题思路://// 线段树-区间合并,对于每个节点记录三个值.// lsum表示该原创 2015-10-30 17:10:02 · 565 阅读 · 0 评论 -
CF #326 (Div. 2) E Duff in the Army
// CF #326 (Div. 2) E Duff in the Army//// 题目大意// 一棵n各节点树,有p个人分布在节点上,q个询问,每个询// 问求u到v路径上小于k的所有人的标号.//// 解题思路:// 函数式线段树,初始建立一颗1-P的线段树,然后将每个// 节点上的信息,按照dfs序列,维护到以该节点为根的函数式// 线段树.同样的我们的答案,只与r原创 2015-10-26 22:04:26 · 943 阅读 · 0 评论 -
spoj 10628 Count on a tree
// spoj 10628 Count on a tree//// 题目大意:// 一棵树上,节点有权值.给q个查询,询问u到v路径上第k小的值//// 解题思路://// 函数式线段树.首先离散化,将最后不同的元素的个数设为tot记录下来,然后// 先建立一颗1-tot的空的线段树.按照dfs序列建立函数式线段树.问什么按照dfs序列.// 因为这样可以将树上节点变成线性结原创 2015-10-26 20:07:58 · 670 阅读 · 0 评论 -
poj 2528 Mayor’s posters 线段树
// poj 2528 Mayor’s posters//// 题目大意:// 给你n张海报,每张海报是一段区间,问最后由几张还好能露出来//// 解题思路:// 线段树,别看那海报的区间范围很大,其实那些都没用.n才10000呢// 将区间离散化之后,然后在进行线段树的操作,但是注意在相差大于1// 的区间中间加上一个值,这样讲两个区间区分开,然后就是基本操作了// 挺好想原创 2015-11-03 21:16:22 · 568 阅读 · 0 评论 -
hdu 2795 Billboard 线段树 点更新
// hdu 2795 Billboard 线段树 点更新//// 首先n最多是200000种,也就是说最多200000行,// 我们的线段树的区间保存的是L到R中最大的叶子节点的值// 初始情况下都是板子的宽度。这样,每次放一块广告的时候// 看1到h中最左边的叶子区间是什么就ok了,还是很好理解的//// 做题的感悟,这道题其实是去年暑假集训的时候做的,当时// 并不会,只会敲原创 2015-06-05 21:28:12 · 871 阅读 · 0 评论 -
hdu 1394 Minimum Inversion Number 线段树 点更新
// hdu 1394 Minimum Inversion Number 线段树 点更新//// 典型线段树的单点更新//// 对于求逆序数,刚开始还真的是很年轻啊,裸的按照冒泡排序// 求出最初始的逆序数,然后按照公式递推,结果就呵呵了//// 发现大牛都是用线段树和树状数组之类的做的,而自己又在学// 线段树,所以就敲了线段树。//// 线段树的节点保存一段区间( L,R原创 2015-06-03 20:33:01 · 755 阅读 · 0 评论 -
hdu 1754 I Hate It 线段树 点修改
// hdu 1754 I Hate It 线段树 点修改//// 不多说,裸的点修改//// 继续练#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-06-02 22:14:12 · 831 阅读 · 0 评论 -
poj 2104 简单归并树 + 二分
// 感悟: 做法如果看一下挑战,应该还是很简单的吧// 主要是刚开始看不习惯,线段树每一段表示一段序列// 刚好是归并排序的序列,然后二分计数。归并树build// 的时候多了个merge阶段,这段复杂度即为nlog(n),之// 后对数x进行二分查找log(n),目的是为了找出线段树// 中不小于x的数的数目,此阶段会对线段树log(n)个段// 进行每段二分log(n)。所以复...原创 2018-06-09 19:39:47 · 259 阅读 · 0 评论
分享