Bizon the Champion has recently finished painting his wood fence. The fence consists of a sequence of n panels of 1 meter width and of arbitrary height. The i-th panel's height is hi meters. The adjacent planks follow without a gap between them. Afte…
题目描述 给你你个序列,每次求区间第\(k\)小的数. 本题中,如果一个数在询问区间中出现了超过\(w\)次,那么就把这个数视为\(n\). 强制在线. \(n\leq 100000,a_i<n,w\leq n\) 题解 考虑整体二分. 先看看离线要怎么做. 现在我们要计算每个数对每个区间的贡献. 对于每个询问区间和每种数,让这个区间最右边\(w\)个数对这个询问的贡献为\(1\),第\(w+1\)个数对这个询问的贡献为\(-w\). 这样每个数的贡献就是二维平面上的一个矩形.可以用扫描线+线段…
传送门 整体二分好题. 题意简述:nnn种果汁,每种有三个属性:美味度,单位体积价格,购买体积上限. 现在有mmm个询问,每次问能否混合出总体积大于某个值,总价格小于某个值的果汁,如果能,求所有方案中用于混合的果汁的美味度的最小值的最大值. 思路: 首先考虑单次询问怎么做,看这个询问的类型应该可以二分答案. 接着思考如何checkcheckcheck,这个时候可以发现果汁可以按照美味度单调递减排列来让我们二分这个答案. 拍完序之后就可以采用贪心的方式,我们知道应该从单位体积从小到大买,因此我们建…
传送门 细节要人命.jpg 这题思路太新奇了--首先不难发现可以倒着做变成加边,但是它还需要我们资瓷加边的同时维护强连通分量.显然加边之后暴力跑是不行的 然后有一个想法,对于一条边\((u,v)\),如果所有加入时间在\((0,t)\)之间的边能够使\(u,v\)在同一个强连通分量里,那么\((u,v)\)这条边的成立时间就是最小的满足条件的\(t\). 对于每一个强联通分量维护一棵权值线段树,修改的话就是一个权值出现次数\(+1\),另一个\(-1\),找前\(k\)大的总和可以类似于主席树的…
[CF484E]Sign on Fence(主席树) 题面 懒得贴CF了,你们自己都找得到 洛谷 题解 这不就是[TJOI&HEOI 排序]那题的套路吗... 二分一个答案,把大于答案的都变成\(1\),其余变成\(0\) 按照题目要求的区间内连续的\(K\)个 就是检查最长的连续\(1\)的子段长度大于\(K\) 所以维护\(1\)的子段长度(这也是原题吧??) 因为范围比较大,不能每次开线段树计算 我们发现每次将范围增大的时候,在线段树上可以直接做一定的修改 又因为要维护所有的线段树,所以直…
「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数 题面描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前数列的长度.(L>0) 2. 插入操作. 语法:A n 功能:将nnn加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾. 限制:nnn是整数(可能为负数)并且在长整范围内.…
题目传送门 矩阵乘法 题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入输出格式 输入格式: 第一行两个数N,Q,表示矩阵大小和询问组数: 接下来N行N列一共N*N个数,表示这个矩阵: 再接下来Q行每行5个数描述一个询问:x1,y1,x2,y2,k表示找到以(x1,y1)为左上角.以(x2,y2)为右下角的子矩形中的第K小数. 输出格式: 对于每组询问输出第K小的数. 输入输出样例 输入样例#1: 2 2 2 1 3 4 1 2 1 2 1 1 1 2 2…
Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更 加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1 给出的树包含 8 个顶点.7 条边).这颗树上有 P 个盘子,每个盘子实际上是一条 路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个 盘子就是顶点a_i到顶点b_i的路径(由于是…
题意 给定一个长度为\(n\)的正整数序列,第\(i\)个数为\(h_i\),\(m\)个询问,每次询问\((l, r, w)\),为\([l, r]\)所有长度为\(w\)的子区间最小值的最大值.(类似于一类特殊的直方图最大子矩形问题) \(1 \leq n, m \leq 10^5\) 题解 我们考虑二分答案,这样\(n\)个数变成\(01\),若\(h_i\geq mid\)则为\(0\),否则为\(1\) 每次就相当于查询存不存在长度为\(w\)的连续\(1\).用线段树维护. 这有个问…
题意 规定区间\((a,b)\)到区间\((c,d)\)有边当且仅当\(c<a<d\)或\(c<b<d\). 起初区间集合为空.有\(n\)(\(n\leq 10^5\))次操作,每次操作形如: \(1\) \(x\) \(y\)(\(|x|,|y|\leq10^9\)):加入一个新区间\((x,y)\),保证新区间长度最长 \(2\) \(x\) \(y\):询问第\(i\)个加入第区间能否到达第\(j\)个加入第区间,保证询问合法 题解 考虑连边的两种情况:第一种是包含,小的向…