
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
式子化简 + 找规律我们首先要知道,且,而 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,那我们一个显然容易想到的做法是遍历每一位,如果此时相等,那么就从此位往后找,一直找到第一个两者二进制位不相同的地方,然后
如果题目没有要求r的话,我们肯定是改变比较好的,但是现在有了限制,那我们就要考虑一下了,假设改变了第一个不相等的地方,那么肯定是不够好的,因为改变之后首先我们的r就减少了很多,这不利于我们后续的进行,所以贪心的想我们这一位不如不取,并且如果这一位不取的话,后面的所有位我们都可以取(前提是这位是可以取但是不取的情况)假如我们有一个神秘的盒子,我们可以往里面投任意数量的金币,每次有50%的几率消失,有
注意数据范围,注意数据范围,注意数据范围!题目给的数据非常非常小,所以我们直接暴力枚举都没问题,那么如何枚举呢?我们可以先求出所有集合的并集T,然后以此枚举T中的元素,如果要是S!= T,那么必定有一个元素s不能选,我们只需要枚举T的每个元素s,然后枚举所有的S,看看其中是否含有s,如果有,那肯定不能选,否则就选。
想到了,但是代码细节没处理好既然我们要将数组变成升序,并且要求最小值,那么肯定要贪心一点我们可以从后开始枚举每一个数,同时定义一个mx代表数组的最大值,如果当数小于mx,说明符合,就不需要更改,同时将mx变为这个数,反之肯定要将这个数进行操作了,同时将mx变为操作后的数思路是这样,那么如何实现呢?首先我们要分解的话肯定是尽量分成较大的数,比如5分成2和3,8分成4和4,那么如何分呢?我们可以利用m
思维题,顺便考了下细节首先我们题目让我们对这个字符串排序,那么显然只能按它的规矩老实去做,但是直接模拟的话肯定死翘翘,那我们就来观察一下有什么性质首先题目让我们找到字典序最大的字串来操作,那么最大的字串从什么地方开始?肯定是从第一个出现最大字符的地方开始,然后往后每次都选较大的。

被标签害了,用什么二分(很简单的思维题,首先如果a >= b,那么全选a就行了,还搞啥活动否则就选 b - a 天来搞活动,为什么?首先如果我们要搞活动,而且要最大利益,那么肯定要满足 b - k >= a,即每一天的利润都不能小于a,不然的话我搞啥活动所以变换一下就是 b - a >= k,可知最大k是 b - a ,然后再写出理论公式即可(自己写X)
思维题如果我们要删除的话,只能删除第一个和第二个,那我们来分析一下操作后会发生什么如果删除的是第一个,那么就是字符串的首字母换成第下一个了如果删除的是第二个,那么就是首字母后的字符串发生了改变我们可以假定首字母为c,那么以c为首字母的奉献就是n - pos[c],其中pos[c]为字符c在字符串中的位置那么我们只需要储存每个字符在字符串中的位置即可特别的,如果字符串中有个字符有多个位置,我们只需储







