随笔分类 -  Splay

摘要:题目描述 有n本书从上到下放,有5种操作: 1.将编号为s的书放在最上面 2.把编号为s的书放在最下面 3.把编号为s的书上下移动一个位置或者不动 4.询问编号为s的书上面的书的个数 5.从上面数第k个书的编号 100%的数据,n,m <= 80000 题解 序列的平衡树。前后插入最值方便些。下标为 阅读全文
posted @ 2019-08-19 22:47 _JSQ 阅读(171) 评论(0) 推荐(0)
摘要:题目描述 有一个公司,有四种操作: 1.拉一个人进入公司,有初始工资 2.每个人的工资加上x 3.每个人的工资减去x 4.查询第k大的工资 当一个人工资低于m时他就会立即离开公司。 要求对于询问输出答案,最后输出离开的人的个数。 题解 查询第k大就用平衡树搞。 主要要解决的就是如何高效的帮助人离开, 阅读全文
posted @ 2019-08-19 22:32 _JSQ 阅读(137) 评论(0) 推荐(0)
摘要:题意 有n个山峰,m条有困难度的双向路径,m个询问求从x出发经过路径困难度<=y所能到达的第k高的山峰的高度。 N≤105,0≤M,Q≤5×105,hi​,c,x≤109 题解 可以想到将路径和询问按困难度从低到高排序,每次对于当前询问将能加的边加进去,然后再查找第k大,这样就变成了永无乡 基本上一 阅读全文
posted @ 2019-08-05 15:15 _JSQ 阅读(194) 评论(0) 推荐(0)
摘要:题意 给出n个岛屿和每个岛屿的重要度排名,初始岛屿间有m座桥,有两种操作:询问与x相连通的岛屿中重要度排名第k小的岛屿编号,不存在输出-1;给x,y岛屿之间建桥。 对于 100% 的数据 n≤100000,m≤n,q≤300000 题解 需要一个可以查询第k小的数据结构,可以使用splay。 考虑怎 阅读全文
posted @ 2019-08-05 13:23 _JSQ 阅读(263) 评论(0) 推荐(0)
摘要:题意 给出一个括号序列,有四种操作: 1.将[l,r]的区间的括号都变成c 2.将[l,r]的区间括号序列翻转 3.将[l,r]的区间的括号取反 4.询问[l,r]区间至少需要翻转几个括号才能合法 100%的数据满足N,M≤100000N,M≤100000。 输入数据保证问题有解。 题解 对于一串不 阅读全文
posted @ 2019-08-04 16:06 _JSQ 阅读(330) 评论(0) 推荐(0)
摘要:输入格式 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进行的操作数目。 第 2 行包含 N 个数字,描述初始时的数列。 以下 M 行,每行一条命令,格式参见问题描述中的表格 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进 阅读全文
posted @ 2019-08-04 11:57 _JSQ 阅读(197) 评论(0) 推荐(0)
摘要:题意 给出一个序列,m次操作翻转区间[l,r],如1,5,4,2变成2,4,5,1 求最后的序列 n,m≤100000 题解 普通的splay维护的权值,如果维护序列的话就维护序列下标即可,即splay的中序遍历就是原序列。 提取一段区间[l,r]就把l-1旋到根,r+1旋到根的右儿子,那么这段区间 阅读全文
posted @ 2019-08-04 11:09 _JSQ 阅读(257) 评论(0) 推荐(0)
摘要:题目描述 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 输入格式: 第一行一个整数N,表示我们要将1到N插入序列中。 接下是N个数字,第k个数字Xk,表示我们将k插入到位置Xk(0<=Xk< 阅读全文
posted @ 2019-07-11 17:36 _JSQ 阅读(245) 评论(0) 推荐(0)