
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
暴力,太暴力了简化一下题意,就是让我们在a,b,c三个数组中选3段无重复的连续区间,使得每段区间和都是sum/3,其中sum是每个数组的和,并且保证每个数组和相同既然要选区间,那么最后肯定是如下图所示的选法即一段左边,一段中间,一段右边但是谁中间谁左边谁右边呢?无所谓,暴力枚举会拯救一切,我们直接排列组合一下即可,发现最多就6种情况,所以我们可以枚举那么如何选区间呢?
对于 r <= A <= l 的情况,min(r,A) = r,那么 max(l, min(r,A)) 就等于 max(l,r) = l。对于 l <= A <= r 的情况,min(r,A) = A,那么 max(l, min(r,A)) 就等于 max(l,A) = A。对于 A < l 的情况,min(r,A) = A,那么 max(l, min(r,A)) 就等于 max(l,A) = l
还能这样DP!?题意简单:你有 n 个字符串 s,每次操作你可以选任意一个 s,如果 t 中有子串 s,那么你可以将这个 t 中这个子串染色,求将 t 全染色的最少操作次数本题也是经典的贪心贪不明白,所以考虑DP。
大多数都是同一个套路,将图拆开成几个图,每一层都对应着一个不同的状态,比如把到点 i 的状态拆成经过了 j 次操作所得的 xx 结果,一般数据不会很大目前遇到的可分为 3 类:①.给你最多 k 次操作,求 xx 结果②.初始给你 k 个燃料,走边需要消耗,每个点你可以选择增加燃料或者不增加燃料,求 xx 结果③.特殊题(还没见过很多)
贪心 + 图论首先我们将题目缩减一下,如果只有 a 点我们怎么写?显然我们的答案是 2 * (n-1) - mxdep,其中 mxdep 是节点最深的深度,为什么呢?因为既然我们要走完整个图,那么每一条路径都得走两边,而我们最后不需要回到出发点,所以我们最后走最长的路径即可,这样就不用走最长的两遍了那么现在有一个点 b 怎么办?我们贪心的想,我们肯定是让二者尽早回合最好,因为我们要让 b 走的无用
异或性质 + 经典trick遇到环上问题 or 树上问题,我们都可以往链上想本题就是破环成链,我们将一个线段放在链上,可以发现其连接了两个点,那么如果此后如果加入了一个线段,那么就有以下三种情况(红色线段是最先画的,其余线段是下一个加入的线段的可能情况)①.新加的线段与原来的线段端点不相交此时显然是没有相交的②.新加的线段与原来的线段端点 相交一个此时就是二者相交了③.新加的线段与原来的线段端点不
式子化简 + 找规律我们首先要知道,且,而 concat 这个函数无非就是在 ai 和 aj 前乘上了 100...,所以我们可以将原式化简为Z mod 3根据上诉结论,进一步化简可得将前式子拆解,得由于有一个 3,那么就可以直接消去,即最后可得所以我们观察到最后的结果只和 a[i]² 有关,不难发现,一个数的平方 mod 3 的结果只能是 0 or 1(这里假设 x 为 3*k + 0/1/2
有点思维的模拟题由于题目告诉我们每次选的花要确保任意两种之差都要小于等于 1(开始看错了)也就是说我们只有 只选 x 或 选x和 x+1 这两种选法我们如何选呢?我们可以先只考虑选 x 的花,这样就有两种情况了①.可以全选,即能够只选 x 花用完所有的钱 或 只选 x 花剩下的钱不能再买花了②.不能全选,即选完 x 花后还剩下了很多钱可以用来买 x+1 花这两种情况我们可以合并起来,一个显然的想法

欸,我们可以发现,如果我们把排列分成 3 等份,那么我只要在中间这等分里找到一个素数 p,那么肯定能在左右两边都拿出两个数来组成素数 p 的两倍,比如如果我们选7,那么我们就可以选6 8构成 7 6 8,这样就有两个素数了,也就是说我们可以将两个数变成一个素数。比如最后一个样例是 2 1 3 4 5,那么如果我们后面要构造的话肯定只能构造5了,因为就算我们选的数是6,我们最小只能获得4,这显然不利
切勿复杂化,这只是个C!首先我们要知道一个性质,即 a + b = a ^ b + 2 * (a & b)观察题目,即 x+k = a,y+k = b,a & b = 0那问题就转化为了 (x+k) & (y+k) = 0,即使得x+k后和y+k后的二进制位没有任何一位同时为1,那我们一个显然容易想到的做法是遍历每一位,如果此时相等,那么就从此位往后找,一直找到第一个两者二进制位不相同的地方,然后







