牛客周赛144D题根据k是2的幂次这个性质可以得到k的二进制中最高位是1后面都是0所以根据按位异或的性质i和j如果大于k那么只有对k取余相等时按位异或才能保证k最高位后面按位异或出来都是0。E题从上往下每次应该需要从子节点缺口位置低的位置开始给它灌水Dfs它的所有子节点必须将这个子节点的所有点灌满水才开始灌下一个子节点需要一个last去存上一个子节点缺口的位置然后加上两个缺口高度差因为缺口是从小到大遍历的所以高度差恒为正。CF2230B想到最后的答案字符串中某一个位置只可能前面全是2后面全是1和3这是最优解这样只需要前缀和后缀和每个位置取最小。2230C首先如果只有一个卡牌有多个那么每两个就可以穿插一张其他情况都是前两张视作没用后面每两张穿插一个。VJE题转化为五进制注意到构造时与数组对应n要自然减1。G题递推从前往后和从后往前进行递推每一个位置受a[i]值影响取小的那一个那么相应后面的值也会因为前面的值被影响而变小这样递推最后可以得到合法最大值前后取最小即可。H题暴力会T需要预处理每个区间需要的操作数然后再取最小值要注意边界1-k要取0-k的差因为取1-k1的操作数不会被计算前缀和差分的思想J题交互题经典毒药问题首先因为二进制是从0开始但饮料的编号是从1开始的所以n要减一并且需要在最后加回来然后就是确定需要多少朋友看n-1的二进制有几位然后分配问题ij1,看第i饮料的二进制是1的位数有哪些是1代表第j个朋友需要喝最后将返回的二进制字符进行十进制转化这里容易错因为给出的二进制是反的也就是说最低位变成了最高位。