P2486 [SDOI2011]染色 (树链剖分)
摘要:P2486 [SDOI2011]染色 分析: 颜色段数用线段树维护,记录最左端颜色与最右端颜色,每一次合并的时候,如果中间颜色有重叠,就将段数--。 链剖查询的时候注意两条链端点颜色相同的情况。 因为跳链是一个交替的过程,记录一下左右链跳完之后跳到的颜色是哪一种:ans1对应左边的x,ans2对应右
阅读全文
posted @
2019-11-08 21:41
rua-rua-rua
阅读(133)
推荐(0)
机房测试:Dove打扑克(vector暴力)
摘要:题目: 题目: 我怎么也不会想到,这道题的正解会如此的暴力。。。 一开始我的做法是开一个桶记录一下每种元素的出现次数,每次查找的时候,枚举一个元素x,查询大于等于x+c的个数。 这样是n*m的,但是其实不同的元素个数只有sqrt(n)个,因为:1+2+3+……x=n,x最多为sqrt(n) 所以用一
阅读全文
posted @
2019-11-08 19:39
rua-rua-rua
阅读(164)
推荐(0)
机房测试13:dp专题(单调队列+树形背包+记忆化搜索)
摘要:T1: 很容易写出dp式子:定义dp[i][j]为现在是第i个烟火,位置在j,然后就可以枚举上一个时间的位置k转移过来。(j-(t[i]-t[i-1])*d <= k <=j+(t[i]-t[i-1])*d) 这样是n*n*m的,考虑优化。 固定一个边界:j-(t[i]-t[i-1])*d<=k 可
阅读全文
posted @
2019-10-14 18:30
rua-rua-rua
阅读(161)
推荐(0)
二分图匹配总结与习题
摘要:模板: (用时间戳记录可以避免每一次memset vis) #include<bits/stdc++.h> using namespace std; #define N 2005 #define M 1000005 int match[N],vis[N],T=0;//只存一边的匹配点 int to[
阅读全文
posted @
2019-10-12 10:17
rua-rua-rua
阅读(228)
推荐(0)
机房测试10:车站分级 加强版(线段树优化建图+虚拟点)
摘要:题目: 弱化版 分析: 题目转化成,每次给出一段区间,在区间中选出几个点,选出的点比未选出的点等级高。 1. 将选出的点向区间中的每一个点都连权值为1的边,用拓扑求最长路径(一定是一个有向无环图),边数n*n*m,时间复杂度O(n*n*m) 2. 不直接连边,添加一个虚拟节点,将选出的点向虚拟节点连
阅读全文
posted @
2019-10-10 08:37
rua-rua-rua
阅读(187)
推荐(0)
机房测试9:gift(单调队列优化dp)
摘要:题目: 数据范围:m<=100 n<=16000 分析: 定义dp[i][j]为第i个人负责前j个单位的最大贡献。 转移:dp[i][j]=max( dp[i][j],dp[i][k]+(j-(k+1)+1)*w[i] ) 化简得:dp[i][k]-k*w[i]+j*w[i] 前半部分与k有关,维护
阅读全文
posted @
2019-10-09 10:41
rua-rua-rua
阅读(160)
推荐(0)
机房测试7:paint(分治+st表)
摘要:题目: 分析: 与noip2018 T1十分相似,那道题可以看做这道题只能横着涂,具体思路是: 第一次先选取最小的高度minn,让所有高度都减去minn,1~n的连续段就被分成了许多块,对于每一个块重复上述过程,直到所有的柱子都为0。 这种过程类似于递归处理块,可以用dfs解决。 对于区间l~r,在
阅读全文
posted @
2019-10-07 21:45
rua-rua-rua
阅读(202)
推荐(0)
机房测试1:string(线段树)
摘要:题目: 分析: 暴力:每一次对区间暴力排序。 优化:如果可以知道一个区间中有哪种字符,这些字符分别有多少个,就可以直接按字典序枚举,将它们快速地插入区间中了。 题中有一个重要信息:只有小写字母,即只有26种字符。 第一种方法: 可以用一个线段树来维护,每个节点储存26个字符在这个区间中的对应情况。每
阅读全文
posted @
2019-10-01 14:09
rua-rua-rua
阅读(218)
推荐(0)
开学考试题8:神奇的集合(multiset) 动态开点线段树
摘要:题目: 分析: 暴力:记录每个集合的每个元素,暴力区间修改,区间求和。 这个题很容易想到线段树,难点在于如何快速地确定一个集合是否出现过某个元素。 考虑维护两个线段树: 一个是答案线段树,维护区间元素个数和。(乘加标记的普通线段树) 一个是判断一段区间是否都有某个元素(动态开点线段树): 1.在mo
阅读全文
posted @
2019-09-23 17:05
rua-rua-rua
阅读(227)
推荐(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)
开学考试题1:seg Mushroom的区间(并查集)
摘要:题目: 暴搜30分 #include<bits/stdc++.h> using namespace std; #define N 100005 int n,m,ans=0,maxn; bool vis[1<<21]; struct node{ int l,r; }v[N]; int read() {
阅读全文
posted @
2019-09-06 20:40
rua-rua-rua
阅读(200)
推荐(0)
暑假考试题9:fly 飞(树状数组 逆序对)
摘要:题目: 分析: 看了一眼题,毕竟是T3嘛,打个暴力。。。计算两两线段的交点,按照题意统计答案。 复杂度n^2,得分20分 #include<bits/stdc++.h> using namespace std; #define N 105 #define eps 1e-6 double X[N*N]
阅读全文
posted @
2019-08-31 17:12
rua-rua-rua
阅读(193)
推荐(0)
暑假考试题3:baritone 上低音号与星星(链表+矩形统计)
摘要:题目: n,r,c<=3000 分析:先枚举左边界 然后将点从高到矮连链表 再统计从每一个点开始含括k个点的矩形 能够上下延伸得到的多少个矩形。然后枚举右边界删点 利用大矩形原有的信息修改后 去累加新的左右宽度较小的矩形的贡献。 这种算法的优势: 每一次缩小矩形的时候 可以不用重新计算小矩形的贡献
阅读全文
posted @
2019-08-24 20:00
rua-rua-rua
阅读(177)
推荐(0)
可持久化并查集(洛谷P3402)
摘要:洛谷P3402【模板】可持久化并查集 思路: 思路和可持久化线段树很相似,都是将主席树与另一种数据结构结合。这个是以并查集结合,所以维护数组fa和用于按秩合并的dep。 首先要建一棵树,这棵树的叶子结点初始化成其对应的下标,即并查集中fa[i]=i的初始化操作 然后对于查询操作,直接求对应历史版本的
阅读全文
posted @
2019-08-23 19:50
rua-rua-rua
阅读(244)
推荐(0)
暑假考试题2:History(可持久化并查集)
摘要:题目: 分析: 求历史两个点之间是否连通->可持久化并查集。 注意:点的标号从0开始,主席树的范围应该是:0~n-1
阅读全文
posted @
2019-08-23 19:37
rua-rua-rua
阅读(211)
推荐(0)
月下“毛景树” 树链剖分模板题(洛谷P4315)
摘要:树链剖分维护的都是点,而这道题要求的是边。 解决:就把边权下放,变成点权,注意下放后查询u到v的路径时要除去lca的点权,因为lca的点权是其父亲的边权 细节:线段树的加标记与等于标记的维护与下传 #include<bits/stdc++.h> using namespace std; #defin
阅读全文
posted @
2019-07-25 21:47
rua-rua-rua
阅读(158)
推荐(0)
平衡树(模板+文艺平衡树)
摘要:模板存一下:求前驱后继,求x的排名和排在的x名的数,删除和插入一个数。 /* https://blog.csdn.net/clove_unique/article/details/50630280 */ #include<bits/stdc++.h> using namespace std; #de
阅读全文
posted @
2019-07-25 21:15
rua-rua-rua
阅读(476)
推荐(0)
洛谷P3224 [HNOI2012]永无乡 线段树合并模板
摘要:题意: Q 查询与x连通的第k小B 将两个集合连通 做法:求集合第k小->值域线段树 集合连通关系->并查集维护 合并集合->线段树合并 注意:线段树的下标是值域 id存储的是 以线段树节点为下标 题中对应的点标号 query中返回的是 那个点的标号 而 l r 是对应的值域 此题值域小 不需要离散
阅读全文
posted @
2019-07-24 09:41
rua-rua-rua
阅读(157)
推荐(0)
线段树优化dp(elect选择)
摘要:好几天以前的考试题,现在才想起来调。。 题意 选格子,要求选出的权值最小,但每次选的格子范围有限制:abs(j-k)<=w[i][j]+w[i-1][k] w是其另一个值 暴力:O(n*m*m*T) 优化:对于将要选的一行格子,将其上一行格子能够覆盖的范围处理出来,然后选这一行时,希望较快的得到在这
阅读全文
posted @
2019-07-21 21:29
rua-rua-rua
阅读(286)
推荐(1)
种类并查集(洛谷P2024食物链)(扩展域并查集)
摘要:题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。 现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道 它到底是哪一种。 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 第一种说法
阅读全文
posted @
2019-03-27 17:32
rua-rua-rua
阅读(264)
推荐(0)