传送门 线段树好题. 维护区间加,区间取最大值,维护区间最小值,历史区间最小值. 同样先考虑不用维护历史区间最小值的情况,这个可以参考这道题的解法,维护区间最小和次小值可以解决前两个操作,然后使用历史标记的常规维护方式合并标记更新就行了. 代码: #include<bits/stdc++.h> #define lc (p<<1) #define rc (p<<1|1) #define mid (T[p].l+T[p].r>>1) #define N 5000…
传送门 线段树好题. 要求支持的操作: 1.区间变成max(xi−a,0)" role="presentation" style="position: relative;">max(xi−a,0)max(xi−a,0) 2.区间加 3.区间覆盖 4.询问单点最值 5.询问单点历史最值 注:以下提到的标记都是向下传递的懒标记. 这题直接更新区间最大值貌似不好维护,因此我们需要更换思路,对于每个节点维护一个标记(a,b)" role="…
传送门 线段树好题. 维护区间取两种最值,区间加,求区间两种历史最值,区间最小值. 自己的写法调了一个晚上+一个上午+一个下午+一个晚上并没有调出来,90" role="presentation" style="position: relative;">9090分弃疗. 于是我开始学习新的写法. 也就是封装再封装. 然后发现自己的方法的确有不严谨的地方,但并不好改,于是写了一个凌晨参考了xuyixuan" role="presen…
题意:http://uoj.ac/problem/169 sol  :线段树..........蜜汁TLE了一个点,不管了..... 代码抄snowMyDream的,orz........... 线段树需要维护以下奇奇怪怪的一堆东西...... 区间最小值及其lazy标记 区间严格次小值及其lazy标记 最小值.严格次小值lazy标记的前缀和,历史最小值 dalao的博客说了一堆势能之类的东西我也没看懂.......我是看代码才明白的QAQ #include<iostream> #includ…
题目链接:https://nanti.jisuanke.com/t/30996 中文题目: 在喝茶的过程中,公主,除其他外,问为什么这样一个善良可爱的龙在城堡里被监禁Lpl?龙神秘地笑了笑,回答说这是个大秘密.暂停后,龙补充道: - 我们有合同.租赁协议.他总是一整天都在工作.他喜欢沉默.除此之外,住在城堡还有更多的优势.比如说,很容易证明未接来电的合理性:电话铃声无法从手机离开的城堡的另一侧到达.因此,监禁只是一个故事.实际上,他思考一切.他很聪明.例如,他开始用整个城堡中的节能灯替换白炽灯.…
题目链接 \(Description\) 交互库中有三个排好序的,长度分别为\(n_a,n_b,n_c\)的数组\(a,b,c\).你需要求出所有元素中第\(k\)小的数.你可以调用至多\(100\)次询问某个数组中的第几个数的函数. \(n_a,n_b,n_c\leq 10^5\). \(Solution\) 显然的做法是先枚举这个数在哪个数组中,再在三个数组中二分.这个次数是\(log^2\)的. 我们如果每次确定一些数比第\(k\)个数小,那我们可以直接将这些数删掉. (可以假设数组是无限…
传送门 考虑用 \(segment~tree~beats\) 那一套理论,维护区间最小值 \(mn\) 和严格次小值 \(se\) 那么可以直接 \(mlog^2n\) 维护前三个操作 考虑维护历史最小值,先维护历史最小标记 写了写发现 \(max\) 那个修改不好操作 对于 \(max\) 操作来说,只会在 \(mn< v <se\) 的时候打上标记 这就相当于区间内等于 \(mn\) 的权值都要变成 \(v\) 那么 \(max\) 操作就可以变成对区间最小值的加法操作 而 \(v<…
论文题. 考虑到这题的维护和区间操作是反向的,也就是说无法像V那题快速的合并标记. 我们知道,一个区间的最小值和其他值是可以分开来维护的,因为如果一个区间被整体覆盖,那么最小值始终是最小值. 对于被覆盖一半的区间,讨论一下即可. 对于每个最小值和次小值记录前缀最小值,当前/历史最小值,当到达合法区间的时候: 如果区间最小值>x,直接退出. 如果minv[o]<x<semn[o],那么更新当前的次小值 反之继续向下. #include<bits/stdc++.h> ; ; us…
此项目是正式入职后的第一个项目,可能各种原因重重,导致测试提出了如此多的bug,关于那些因为需求不清楚而导致的就不说了,bug总结如下: 一.ElementUI table组件出现横向滚动条 原因:因为左右的横向border导致浏览器计算的宽度超出了我们设定的宽度,从而导致出现横向滚动条 解决: 方法一:去掉border,但是会影响样式美观 方法二: .el-table__body-wrapper, .el-table__footer-wrapper, .el-table__header-wra…
主要是应用在回文串啦,原理也理解了老半天,如果没有图片的话,我也看不太懂它的原理 学习的灵感来源来自于:https://segmentfault.com/a/1190000008484167 /* 最长回文 */ /*给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 两组case之间由空行隔开…