【问题】 给定一组区间,对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的“右侧”。 对于任何区间,你需要存储的满足条件的区间 j 的最小索引,这意味着区间 j 有最小的起始点可以使其成为“右侧”区间。如果区间 j 不存在,则将区间 i 存 ...
分类:
其他好文 时间:
2020-01-01 23:31:17
阅读次数:
78
"题面" "代码" $dfs$一遍,记录每个点的编号和它子树中点的最大编号。树上问题转化为区间问题后,单点修改区间查询用树状数组维护。 $O(nlogm)$ ...
分类:
其他好文 时间:
2019-10-12 20:40:15
阅读次数:
72
题意$T$个询问,每次询问给出$n,k$,你需要回答数据范围:$1le Tle 100000, 0le n,kle 100000$莫队这题需要用普通莫队算法。我们将每个询问$(n,k)$离线存下来,并用莫队处理区间问题的方法将其分块后排序。($n$当做左端点,$k$当做右端点)我们知道要想用莫队算法... ...
分类:
其他好文 时间:
2019-10-09 17:36:29
阅读次数:
117
首先,根据数据范围,可以得到这是一题O(N2) 考虑贪心 发现行和列是不相关的,于是可以把他们分成两个一维区间问题,也就是在线段中选出点使得每个线段中都有一个点,求出方案。 先考虑尽量不对后面造成影响,也就是留后路,所以前面要尽量选靠前的,按照右端点排序,分别处理。 最后记得按原序号输出。 ...
分类:
其他好文 时间:
2019-10-02 12:46:34
阅读次数:
60
一、区间问题 1、若干个区间,选出最多的区间个数使得区间两两不交。 右端点升序排序,能选就选。 2、若干个区间,每个区间有权值,选出若干两两不交的区间,使权值和最大。 设$f_i$为从前往后做到$i$的答案,对于权值为$w$的区间$(l,r)$,$f_r=max(f_r,\max\limits_{j ...
分类:
其他好文 时间:
2019-09-24 15:52:52
阅读次数:
82
题面 区间 问题描述 给出一个序列 a1, ..., an。 定义一个区间 [l,r] 是好的,当且仅当这个区间中存在一个 i,使得 ai 恰好等于 al, al+1, ..., ar 1, ar 的最大公因数。 求最长的好的区间的长度。 输入格式 第一行 n,表示序列的长度; 第二行 n 个数 a ...
分类:
其他好文 时间:
2019-09-21 23:12:32
阅读次数:
132
T1 最近说实话区间问题非常常见,但是考场上还是做不到灵活处理,先说几个套路吧 关于这种需要知道某个区间中的最大值的问题,常用的选择是单调栈$O(1)$维护出来序列中这个值作为最大值的最大区间,那么对于这个区间中所有跨过这个值的小区间都是以这个值作为最大值的 而对于这种区间和整除的询问常用操作是开桶 ...
分类:
其他好文 时间:
2019-09-20 18:54:32
阅读次数:
83
题意 有一个长度为$n$的正整数序列$a$,可以进行$m$次操作,每次操作有两种类型: $op=1$ 修改操作,表示将区间$[L,R]$内的所有数都乘上一个正整数$x$ $op=2$ 询问操作,询问$[L,R]$区间中所有数乘积的欧拉函数,即$\varphi(\prod_{i=L}^R a_i)$ ...
分类:
其他好文 时间:
2019-09-12 00:01:57
阅读次数:
98
既然我们知道树状数组可以差分求前缀和 那么就可以对其进行 前缀和 求变量值 展开可得 $(k+1)*\sum_{i}^n c[i]-\sum_{i}^n i*c[i]$ 两个 树状数组可以搞定 顺便提一下DFS序 可以将树上问题转化为区间问题 对节点重新编号 并且有从属关系 从而 利用各种数据结构 ...
分类:
编程语言 时间:
2019-08-20 00:30:50
阅读次数:
110
1.定义 拉链表是一种数据库设计模,用于储存历史数据和分析时间维度的数据。 所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。 关键点: 储存开始时间和结束时间。 开始时间和结束时间首尾相接,形成链式结构。 拉链表一般用于解决历史版本查询的问题,也可用于解决数值区间问题,查 ...
分类:
其他好文 时间:
2019-08-17 15:15:36
阅读次数:
152