• 2024-06-23[题解]P2042 [NOI2005] 维护数列 - Splay解法
    P2042[NOI2005]维护数列一道思路不难,但实现细节很多的平衡树题,调了一天半终于做出来了w。对于初始序列,我们可以直接构建一条链(毕竟一个一个调用插入函数也可能形成一条链)。题解有递归直接构建成一棵严格平衡的二叉树的,这样也可以,常数可能会小一点。其中区间反转就是裸的文艺
  • 2024-03-26Manacher 算法
    开个坑,后续补解析classSolution{public:intcountSubstrings(strings){intn=s.size();stringt="$#";for(constchar&c:s){t+=c;t+='#';}n=t.size();
  • 2024-02-21[BZOJ1047][HAOI2007][AcWing1091]理想的正方形(单调队列)
    此题的数据相当大,暴力的显然过不了,即使是O(abn)的算法也会超时,所以只能考虑O(ablogn)或O(ab)的算法。50分暴力#include<bits/stdc++.h>usingnamespacestd;intn,a,b,m[1001][1001];intdx(intx,inty){ intmaxn=0,minn=0x7fffffff; for(inti=x;i<=x+n-1;++i){ for(in
  • 2024-02-20山海经
    解:一眼看到这题,觉得是道板子题,但是如果直接暴力的话会kuku超时。所以只能智取!!解释都在代码里,自行观看:点击查看代码#include<bits/stdc++.h>#definelsrt<<1#definersrt<<1|1#definemid((tr[rt].l+tr[rt].r)>>1)usingnamespacestd;constintN=4e7+10;intn,m,w
  • 2023-11-21【题目-理想的正方形】 二维单调队列
    理想的正方形(二维单调队列)题目acwing.1091理想的正方形题解题目很好做,主要学习一下二维单调队列的写法首先将每行各窗口内最值用单调队列维护出来,保存在rmax中接着对rmax各列,将每列最值用单调队列维护出来,保存在cmax中,最后cmax中存的就是行和列窗口乘积范围的二维区间
  • 2023-06-11permu题解(树上莫队)(非正解)
    题目传送门题意给出一个长度为$n$的排列$P(P1,P2,...Pn)$,以及$m$个询问。每次询问某个区间$[l,r]$中,最长的值域连续段长度。思路首先这道题事求连续段的长度,打个莫队先#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;namespaceTestify{ inlineint
  • 2023-05-15hdu:LCIS(线段树+区间合并)
    ProblemDescriptionGivennintegers.Youhavetwooperations:UAB:replacetheAthnumberbyB.(indexcountingfrom0)QAB:outputthelengthofthelongestconsecutiveincreasingsubsequence(LCIS)in[a,b].InputTinthefirstline,indicatingt
  • 2023-04-21单调队列优化
    1.子矩阵来源:第十四届蓝桥杯省赛C++C组题目链接题目描述给定一个$n×m$($n$行$m$列)的矩阵。设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为$a×b$($a$行$b$列)的子矩阵的价值的和。答案可能很大,你只需要输出答案对$998244353
  • 2023-04-19leetcode_打卡08
    leetcode_打卡08题目:334.递增的三元子序列思路:分成左边L和右边R,只要找到该数左边比它小的,右边比他大的即可代码:classSolution{publicbooleanincreasingTriplet(int[]nums){intn=nums.length;int[]L=newint[n];int[]R=newint[n];
  • 2023-03-05CF1793 Codeforces Round 852 (Div. 2) D. Moscow Gorillas
    https://codeforces.com/contest/1793/problem/D对于给定的两个长度为\(n\)的排列\(a_i,b_i\),定义\(MEX(S)\)为集合\(S\)中没有出现的最小的正整数,找出所有满足
  • 2023-01-12LeetCode刷题(41)~买卖股票的最佳时机
    题目描述给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意
  • 2022-12-04vba-加数据验证
    PrivateSubCommandButton1_Click()'给商品代码下拉列表赋值DimtbAsListObjectSettb=Sheet1.ListObjects("表_入库")DimS01AsObjectSetS
  • 2022-10-20P6492 STEP(线段树维护左右区间pushup)
    题目链接题目描述:给定一个长度为\(~\)n\(~\)的字符序列\(~\)a,初始时序列中全部都是字符\(~\)L。有\(~\)q\(~\)次修改,每次给定一个\(~\)x,做出如下变化:\(~~\)1.a\(_
  • 2022-10-18P6492 [COCI2010-2011#6] STEP(线段树维护左右区间pushup)
    题目链接题目大意:\(~~\)初始给定一个长度为n的字符序列a,初始序列中全是\(~\)L\(~~\)共有q次修改,修改a\(_{x}\)为:L\(\rightarrow\)\(~~\)or\(~~\)R\(\rightarrow\)L\(
  • 2022-08-31CF739C Alyona and towers 解题报告
    线段树绝世好题。题意:维护区间加,全局最长单峰序列。Solution:维护\(8\)个量。\(lval\):左端点的权值。\(rval\):右端点的权值。\(lmax\):以左端点开始的最长的下降序
  • 2022-08-30P4513 小白逛公园
    求动态区间最大子段和,并支持单点修改。\(n\leq5\times10^5,m\leq10^5\)。用线段树处理。对于每一个节点维护以下变量:\(ans\)表示区间内最大子段和,\(sum\)表示区间