随笔分类 - -----数据结构 3.线段树
摘要:题目链接:hdu 6183 Color it 题意: 在一个二维平面上有n个操作。 1. x y c 在(x,y)这点上添加一个颜色c。 2. x y1 y2 询问二维平面[1,x]~[y1,y2]上有多少不同的颜色。 题解: 由于这题在x轴每次都是询问的[1,x],所以我们开50棵线段树,对于每种
阅读全文
摘要:题目链接:hdu 6070 Dirt Ratio 题意: 给你n个数,让你找一段区间[l,r],使得[l,r]中不同的数的个数size/(r-l+1)最小。 题解: Claris官方题解: 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=
阅读全文
摘要:题目链接: Codeforces Round #426 (Div. 2) D. The Bakery 题意: 给你n个数,划分为k段,每段的价值为这一段不同的数的个数,问如何划分,使得价值最大。 题解: 考虑dp[i][j]表示划分为前j个数划分为i段的最大价值,那么这就是一个n*n*k的dp, 考
阅读全文
摘要:题目链接:hdu 6039 Gear Up 题意: 给出一些齿轮,有些齿轮是边相连,也就是拥有相同的线速度,有的齿轮是轴相连,也就是拥有相同的角速度,现在给某个齿轮一个速度,求这些齿轮中的最大速度,同时还有修改操作,可以更改某个齿轮的半径大小 题解: 官方题解: 1 #include<bits/st
阅读全文
摘要:题目链接:"盛大游戏杯" M 风力观测 题意: 给你n个数,现在有m个操作。 1 L R V 给[L,R]区间全部加V. 2 X 询问X这个点 历史的绝对值最大是多少。 题解: 对于每个询问,其实我们只需要记录下在这个过程中最大的偏移量和最小的偏移量就行了。 所以直接一个线段树搞一搞就行了。 1 #
阅读全文
摘要:题目链接:Educational Codeforces Round 23 F. MEX Queries 题意: 一共有n个操作。 1. 将[l,r]区间的数标记为1。 2. 将[l,r]区间的数标记为0。 3. 将[l,r]区间取反。 对每个操作,输出标记为0的最小正整数。 题解: hash后,用线
阅读全文
摘要:题目链接:hdu 5306 Gorgeous Sequence 题意: 给你一个序列,有三种操作。 0 x y t:将[x,y]的数取min(a[i],t) 1 x y:求[x,y]的最大值 2 x y:求[x,y]的区间和 题解: 吉老师的课件题:传送门 1 #include<bits/stdc+
阅读全文
摘要:题目链接: Codeforces Round #406 (Div. 2) D. Legacy 题意: n个点,m条边,起始点为s。一共有三种建边方式。 1:建立一条a->b权值为c的单向边、 2:建立一条v->[l,r]权值为d的单项边。 3:建立一条[l,r]->v权值为d的单项边。 求起点到各个
阅读全文
摘要:题目链接:hdu 4578 Transformation 题意: 有n个数一开始全为0,现在有m个操作. 1 a b c :将[a,b]区间的数全部加c 2 a b c :将[a,b]区间的数全部乘c 3 a b c :将[a,b]区间的数全部set成c 4 a b p :询问[a,b]区间的数的p
阅读全文
摘要:题目链接:codeforces 85D. Sum of Medians 题意: add x 表示向集合中添加x(添加x的时候保证x是第一次被添加入集合)del x 表示从集合中删除x (删除x的时候保证x存在于集合中)sum 将集合排序后,询问集合里面所有下标i % 5 = 3的元素的和(如果集合为
阅读全文
摘要:题目链接:hdu 5997 rausen loves cakes 题意: 给你n个点,每个点有一个颜色,现在有两个操作,第一个操作,将颜色x改为颜色y,第二个操作,询问[x,y]区间有多少颜色段(颜色段的定义为从左往右相同的颜色为一段,遇到不相同的为下一段,ie:144112为4段颜色) 题解: 对
阅读全文
摘要:题目链接:hdu_5818_Joint Stacks 题意: 给你两个栈,多了个合并操作,然后让你模拟 题解: 很容易想到O(1)的单个栈操作,O(n)的合并操作,这样肯定超时,所以我们要将时间复杂度均摊一下,让每个操作都是logn的,于是用上了线段树模拟。 线段树考虑染色,线段树的区间代表的是操作
阅读全文
摘要:题目链接:hdu_5726_GCD 题意: 给你n个数(n<=1e5)然后m个询问(m<=1e5),每个询问一个区间,问你这个区间的GCD是多少,并且输出从1到n有多少个区间的GCD和这个区间的相同 题解: 对于第一个问,直接上线段树维护一下区间GCD就行了,对于第二个问,直接上区间GCD维护的板子
阅读全文
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3564 题意:给你N个数的位置。数i的位置为第i个数,比如 0 0 2,表示1插在第0个位置,此时数列为{1},2插在第0个位置,此时数列为{2,1},3插在第2个位置,此时数列为{2,1,3},每插一个
阅读全文
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4718 题意:给你一棵树,每个节点有一个值,然后任给树上的两点,问这两点的最长连续递增区间是多少 题解:先树链剖分,然后结合线段树的区间合并来搞,注意的是要记录递增和递减两个状态,因为线段树的区间都是从根
阅读全文
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2871 题意:给你一段内存,让你操作1:Reset:重置所有内存 2:New x:申请一块X大小的内存,返回内存最左边的开头,3:free x:释放包含x单元的内存块 4:Get x:取第X块的内存首地址
阅读全文

浙公网安备 33010602011771号