
线段树
Start_to_crazy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU-3974 DFS序+线段树
题意: 一个公司里面每个员工都有一个上司,除了一个人没有上司(即老总也就相当于员工),一旦给某个员工分配任务后,这个员工以及其所有下属都在做该任务。 有两个操作, T:分配给员工任务 C:查询该员工正在执行的任。 题解:看着蛋疼,但是你想成一棵树就可以用DFS序列+线段树来解决问题了,这道题也让我知道我之前的区间判断的写法很不安全,之后将逐渐改成更为正确原创 2017-10-08 01:31:45 · 358 阅读 · 0 评论 -
HDU-4027 开根号的线段树区间更新
题意: 有100000个数,两种操作,0 i j表示将i, j这段的数字都开根号(向下取整),1 i j表示查询i, j之间的所有值的和(这题要用long long int)。 题解: 一开始没想出来开根号这玩意怎么做,后来看到别人说这玩意最大的值开个6,7次根号基本就完事了,就相通了,1开根号永远是1,如果要开根号,先判断区间是不是等于r-l+1(即每个都为1了),等原创 2017-10-08 16:07:39 · 890 阅读 · 0 评论 -
POJ3264-Balanced Lineup
题意: 求区间最大最小值之差,上线段树。#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define lson root<<1,l,mid#define rson root<<1|1,mid+1,rconst int MAXN=50000+7;int t[MAXN<<2],MIN[M原创 2017-10-02 16:14:17 · 260 阅读 · 0 评论 -
POJ3468-A Simple Problem with Integers
题意: 区间更新,直接上线段树。 题外话: 这道题虽然水,但是让我了解到了线段树的区间加值是怎么操作的。#include<stdio.h>#include<string.h>#define lson root<<1,l,mid#define rson root<<1|1,mid+1,rconst int MAXN=100000+5;long long int a[MAXN],t[MA原创 2017-10-02 16:27:53 · 286 阅读 · 0 评论 -
HDU 5316 区间合并
题意: 给你n个数字的序列,有两种操作。第一种操作是修改某个位置的值,第二种操作是询问l,r内美丽子序列的最大和。所谓美丽子序列,就是指按顺序选出一些数,这些数中任意相邻的两个数的原位置编号必须满足奇偶相间(即一奇一偶)。题解: 这道题要用到线段树的区间合并,修改操作简单,难的是怎么区间合并,我们可以设置四个变量,oo,jj,oj,jo,分别是以偶数下标开始偶数下标结束,以奇数...原创 2018-05-28 20:59:11 · 307 阅读 · 0 评论