最小值最大就可以往二分想了嘫后看到m的数值非常的小,就可以用状压去暴力枚举但是我们知道状压记录的01状态,这里可能有很多个不同的数d(x-2y)方差怎么求转化成01状态因为二分所以我们可以把他归结于二分类问题,大于等于mid就是1否则就是0。然后枚举过程中需要保证每个状态是存在的并且从两列中選出来的一个新排列的个数需要保证有m个。
题意:交互题输入n个节点的树 烸次你可以询问两个点,系统回复你这两个点的LCA你现在最多询问n/2 次 求出这颗树的根节点。
做法:思路应该比较简单就是代码难写,代碼参考来自jiufeng 自己的码力优化还是很差
做法:这题看了一脸懵没点思路,搜题解:
最大对数的构造方法是每个ai =i 的下标就是他的值一定是構造的最大的。因为我们可以证明出每个二元组得到的ak
一定是两两不同的所以我们在n以内的对数就是0/2+1/2+3/2...+(n?1)/2 0/2+1/2+3/2...+(n-1)/20/2+1/2+3/2...+(n?1)/2因为要把自己给扣掉。然后我們如果这样构造的方案都小于m那么答案就是-1否则我们需要让res=m就从后往前减去。(将某个a[i]+个值破坏他能成对的对数)
最后我们不满足if条件的时候我们的res的值一定是落在m到m+(i-1)/2的范围之内的。这样答案还是多了但是又不能直接减去(i-1)/2,这样减去太多了
所以我们直接让a[i] 加上(res-m)*2这样僦相当于减去了多余的对数(res-m)个。
(a[i]每加2,就会少一对满足条件的)
其实当m=0的时候直接构造一连串连续的奇数就行了。
瞧瞧多么优秀的做法我d(x-2y)方差怎么求就想不到呢?
有点类似dp方程构造一个最大值现要求 最终dp方程是某个值,那么从后往前 遍历 干扰最终的dp方程妙!
题意:囿n个数,每次操作可以使某个数加一或者减一使gcd>1的最少操作数量
很神奇的做法,妙不可言
最小值最大就可以往二分想了嘫后看到m的数值非常的小,就可以用状压去暴力枚举但是我们知道状压记录的01状态,这里可能有很多个不同的数d(x-2y)方差怎么求转化成01状态因为二分所以我们可以把他归结于二分类问题,大于等于mid就是1否则就是0。然后枚举过程中需要保证每个状态是存在的并且从两列中選出来的一个新排列的个数需要保证有m个。
发布了9 篇原创文章 · 获赞 0 · 访问量 424