随笔分类 -  线段树

机房测试10:a 礼物分配(差分约束 or 贪心+线段树)
摘要:题目: 分析: 法一: 差分约束 将题目中的限制写成三个不等式:(s数组是前缀和) 1. s[r]-s[l-1]>=c 2. s[r]-s[r-1]>=0 3. s[r]-s[r-1]<=1 将第一个式子移项成最短路中dis的形式:s[r]>=s[l-1]+c 这个式子与:dis[i] >= dis 阅读全文
posted @ 2019-10-10 09:30 rua-rua-rua 阅读(166) 评论(0) 推荐(0)
机房测试10:车站分级 加强版(线段树优化建图+虚拟点)
摘要:题目: 弱化版 分析: 题目转化成,每次给出一段区间,在区间中选出几个点,选出的点比未选出的点等级高。 1. 将选出的点向区间中的每一个点都连权值为1的边,用拓扑求最长路径(一定是一个有向无环图),边数n*n*m,时间复杂度O(n*n*m) 2. 不直接连边,添加一个虚拟节点,将选出的点向虚拟节点连 阅读全文
posted @ 2019-10-10 08:37 rua-rua-rua 阅读(187) 评论(0) 推荐(0)
机房测试5:reverse(bfs+set 或 线段树优化建图)
摘要:题目: 分析: 首先画样例分析一下,会发现如果要求一个位置要多少次翻转,就将这个位置向与它关联的点连边(关联点指的是可能与它值互换的位置),一直连到起点为止,连边的次数即为它所需步数。 所以转换成求单源最短路,因为边权为1,可以用bfs。 但是这道题n的范围很大,刚刚的做法是n*k的,考虑优化。 法 阅读全文
posted @ 2019-10-05 19:31 rua-rua-rua 阅读(303) 评论(0) 推荐(0)
机房测试1:string(线段树)
摘要:题目: 分析: 暴力:每一次对区间暴力排序。 优化:如果可以知道一个区间中有哪种字符,这些字符分别有多少个,就可以直接按字典序枚举,将它们快速地插入区间中了。 题中有一个重要信息:只有小写字母,即只有26种字符。 第一种方法: 可以用一个线段树来维护,每个节点储存26个字符在这个区间中的对应情况。每 阅读全文
posted @ 2019-10-01 14:09 rua-rua-rua 阅读(218) 评论(0) 推荐(0)
开学考试题8:神奇的集合(multiset) 动态开点线段树
摘要:题目: 分析: 暴力:记录每个集合的每个元素,暴力区间修改,区间求和。 这个题很容易想到线段树,难点在于如何快速地确定一个集合是否出现过某个元素。 考虑维护两个线段树: 一个是答案线段树,维护区间元素个数和。(乘加标记的普通线段树) 一个是判断一段区间是否都有某个元素(动态开点线段树): 1.在mo 阅读全文
posted @ 2019-09-23 17:05 rua-rua-rua 阅读(227) 评论(0) 推荐(0)
开学考试题5:2017黑龙江省选
摘要:Day1 T1:P3745 [六省联考2017]期末考试 隐藏的水题。。。 分析: 一看题,难,再看数据范围,连dfs爆搜的分都没有。但其中很多特殊点暗示了做法: 1. A B大,C小,说明只能让学生不愉快,不能调课。 2.C大,A B小,说明只能用AB两种方式调课:那么我们为了不让学生产生不愉快度 阅读全文
posted @ 2019-09-18 17:46 rua-rua-rua 阅读(193) 评论(0) 推荐(0)