随笔分类 - 差分/前缀和
摘要:题意:有一长度为$n$的括号序列,有$q$个询问,两种操作,1是交换$l$和$r$位置的字符,2是询问$l$到$r$的括号序列是否合法。 题解:先将括号序列用$1$和$-1$表示,不难发现,对于一个合法的括号序$[l,r]$,其区间和一定为0,且区间内任一位置的前缀和都不能小于$0$,即前缀和最小值
阅读全文
摘要:题意:你的键盘有$k$个按键,矩阵$T_{i,j}$,表示第$i$个键和第$j$个键之间的输入频率,并带有一个$L$的修正,$T$的每一行都是非递减的,现在你忘了你的密码,但是你知道你密码的相邻两个字符的输入频率,你需要构造一个序列,这个序列需满足$T_{S_i,S_{i+1}}-L \le P_i
阅读全文
摘要:题意:有一长度为$n$的字符串,+表示1,-表示-1,字符串的子区间$[l,r]$的贡献为,\(a_l-a_{l+1}+a_{l+2}-a_{l+3}...\),$q$次询问,每次询问一个区间,问最少删去几个位置的字符是的区间贡献为$0$,输出答案和删去的位置。 题解:首先,假如区间贡献为$0$那么
阅读全文
摘要:题意:给你两个长度分别$n$和$m$的序列$a$和$b$,构造一个$n$x$m$的矩阵,每个单位的权值$w_{i,j}=a_i+b_j$,现在要选一个长宽至少为$x$x$y$的子矩阵,求所选矩阵的最大平均值. 题解:这题不难转化为在$a$中找长度最小为$x$的区间最大平均值和在$b$中找长度最小为$
阅读全文
摘要:题意:给你$n$个用16进制表示的RGB三元组,$q$个询问,询问区间$[l,r]$的三元组和,如果某个三个元组的状态为$1$,那么直接用该三元组的值覆盖前面的值,如果是$2$则正常求和. 题解:用nx数组记录离当前位置最近的状态为$1$的三元组的位置,然后前缀和记录判断一下就好了.这题读入好像卡的
阅读全文
摘要:题意:有一长度为$n$的序列,问有多少种方式将其分成连续的$k$个序列$B_1,B_2,...,B_k$,使得对于每个$i\ (1\le i\le k)$都能整除$B_i$的元素和. 题解:设$dp[i][j]$为取前$i$个数分成$j$个$B$序列的方法数.那么可以写出一个比较暴力的$dp$转移式
阅读全文
摘要:题意:有$n$x$n$的矩阵,用$k$x$k$的小矩阵去遍历整个矩阵,求所有$k$x$k$矩阵中遍历时的最小中位数. 题解:二分答案.将原矩阵根据二分的值变成01矩阵,如果元素值不小于$x$就变为$1$,否则就是$0$.对于某个$k$x$k$的小矩阵,统计它的元素和,如果它的和$sum<\lfloo
阅读全文
摘要:题意:你要连续$T$天去景点游玩(上午或者下午),有$n$个室内景点和$m$个室外景点,每个景点都有自己的值,对于同一个景点,每次重复参观,权值都要*\(0.6\).如果在下午参观室外景点那么景点的权值*\(0.8\).你至少有$k$天在下午游玩,问你能得到的最大权值是多少. 题解:对于*$0.6$
阅读全文
摘要:题意:给你一个只含$+\(和\)-$的字符串,给你一个数$x$,$x$初始为$0$,随着字符串的遍历会加一减一,现在有$m$个询问,每个询问给出一个区间$[l,r]$表示将这个区间内的字符串去除,得到新的字符串,问遍历新字符串后,$x$取到的值最多有多少. 题解:这题的关键是,$x$的值是一一变化的
阅读全文
摘要:题意:有一堆石子,你每次可以选择相邻(就算两堆石子中间有很多空堆也不算)的两堆石子,使得两堆石子的个数同时$-1$,你在刚开始的时候有一次交换相邻石子的机会,问你最后能否拿走所有石子. 题解:对于第一堆石子和最后一堆石子,它们只能靠第二堆石子和倒数第二堆石子减去才合法,所以我们由第一堆石子不断向右推
阅读全文
摘要:题意:你的手机有$n$个app,每个app的大小为$a_i$,现在你的手机空间快满了,你需要删掉总共至少$m$体积的app,每个app在你心中的珍惜值是$b_i$,$b_i$的取值为$1$或$2$,现在问你至少删掉体积$m$的app的最小珍惜值是多少,如果不能满足条件,输出$-1$. 题解:因为$b
阅读全文
摘要:题意:你需要订阅一些服务,每个服务每天需要花费$c_i$,要从第$a_i$用到第$b_i$天,你可以购买会员,会员每天需要花费$C$,但是这天的服务不用再另花钱了,问你订阅这些服务的最小花费是多少. 题解:对于这种某一段区间的加加减减的问题,我们首先应该考虑的是用差分,我们可以用map来做差分数组,
阅读全文
摘要:题意:给你一组非递减的数,你可以对两个连续的数进行异或,使其合并为一个数,问最少操作多少次使得这组数不满足非递减. 题解:首先,给出的这组数是非递减的,我们考虑二进制,对于三个连续的非递减的最高位相同的数,我们可以将后面的两个异或,那么第一个数一定比合并的数大,所以当出现三个最高位相同的数时,操作数
阅读全文
摘要:题意:有一长度为$n$的平台,平台有的位置有木桩,可以使小球弹起来,小球必须从第$p$个位置开始,而且每次都会向右弹$k$个单位,然后有的位置是没有木桩的,你可以在这些的空的位置放一个木桩,需要花费$x$,在开始的时候,你可以删除前几个单位,每个单位花费$y$,问最少花费多少使得小球能够弹出平台外.
阅读全文
摘要:题意:在$x$轴上,你刚开始在$0$的位置,第$i$次操作需要走$A_1,...,A_i$个单位,如果$A_i$为正向右走,否则向左走,求你所能走到的最大坐标. 题解:我们一步一步来看: 第一次走:\(A_1\). 第二次走:\(A_1,A_2\). . . . 第$n$次走:\(A_1,A_2,.
阅读全文
摘要:题意:有一长度为$n(4\le n\le 3000)\(的数组,选择四个位置\)(i,j,k,l)\ (1\le i<j<k\le n)$,使得$a_i=a_k$并且$a_j=a_l$,问存在多少这样的元祖. 题解:$n$最大给了$3000$,所以时间复杂度最坏可以是$O(n^2)$,我们可以考虑枚
阅读全文
摘要:题意:RT,给你四个数$a,b,c,d$,求$x+y+z=k$的方案数. 题解:我们可以先枚举$x$的值,然后$x+y$能取到的范围一定是$[x,x+b]$,也就是说这个区间内每个数都有一个贡献,所以我们可以通过枚举$a$并且利用差分来求出$x+y$的贡献,然后再复原前缀和,同理再枚举$x+y$,即
阅读全文
摘要:题意:给一个$nXm$的矩阵,可以选取$aXb$的子矩阵,使子矩阵中的所有元素减一,问最后是否能使矩阵中所有元素变为$0$. 题解:首先贪心,我们看最左上角的元素,如果$g[1][1]\ge0$,那么我们就要对其子矩阵的所有元素减去$g[1][1]$,然后因为$g[1][1]$已经是$0$了,假如$
阅读全文
摘要:题意:有一个长度为$n$的数组,进行$m$次操作,每次读入一个值$t$,如果$t=1$,则将区间$[l,r]$的数字反转,若$t=2$,则查询下标为$i$的值. 题解:树状数组的板子题,但是考察到了位运算的知识,我们对区间进行反转的时候,只需要对树状数组$c[l]$ ^ 1,\(c[r+1]\) ^
阅读全文
摘要:题意:找出序列中有多少子序列是$wow$,但是$w$只能用$vv$来表示. 题解:我们分别记录连续的$v$和$o$的个数,用$v1$和$v2$存,这里要注意前导$o$不能要,观察一下写出答案公式:\(ans=v1[i]*(v2[i]*(v1[i+1]+...+v1[k])+v2[i+1]*(v1[i
阅读全文