摘要: 题目描述 有n本书从上到下放,有5种操作: 1.将编号为s的书放在最上面 2.把编号为s的书放在最下面 3.把编号为s的书上下移动一个位置或者不动 4.询问编号为s的书上面的书的个数 5.从上面数第k个书的编号 100%的数据,n,m <= 80000 题解 序列的平衡树。前后插入最值方便些。下标为 阅读全文
posted @ 2019-08-19 22:47 _JSQ 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目描述 有一个公司,有四种操作: 1.拉一个人进入公司,有初始工资 2.每个人的工资加上x 3.每个人的工资减去x 4.查询第k大的工资 当一个人工资低于m时他就会立即离开公司。 要求对于询问输出答案,最后输出离开的人的个数。 题解 查询第k大就用平衡树搞。 主要要解决的就是如何高效的帮助人离开, 阅读全文
posted @ 2019-08-19 22:32 _JSQ 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)删除某个位置的数 (2)求数列某位置的值 题解 一开始想的是平衡树,后来想了想没有骚操作,就只要记录该位置是否有效,删除就变成0,然后查询仿值域线段树查k小。 不晓得如果有插入行不行。 #include<bits/stdc++.h 阅读全文
posted @ 2019-08-19 22:12 _JSQ 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求数列中有多少个数比它前面的数都大 题解 不会就去参考了一下前辈的题解,说是楼房重建的原题,又去参考了楼房重建的题解(滑稽)。 对于本题,建立线段树,区间记录最大值和有多少数比前面的数都大的数的个数sum 阅读全文
posted @ 2019-08-19 22:06 _JSQ 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 描述 给一个长为N的数列,有M次操作,每次操作时以下三种之一: (1)修改数列中的一个数 (2)求数列中某连续一段所有数的两两乘积的和 mod 1000000007 (3)求数列中某连续一段所有相邻两数乘积的和 mod 1000000007 1<=N<=10^5,1<=M<=10^5,输入保证合法, 阅读全文
posted @ 2019-08-19 21:39 _JSQ 阅读(240) 评论(0) 推荐(0) 编辑