Codeforces Round 1091 (Div. 2) and CodeCraft 26 2217
A.The Equalizer
思路:先下 也就是奇数次一定赢
或者n*k把所有数字改成k之后是偶数也可以赢
B. Flip the Bit (Easy Version)
思路:左边有多少个相邻不相等的数字,右边有多少个,取最大值,如果最大值是奇数还要改变一次,否则正常输出
C. Grid Covering
思路:向右移动b和m的最大公约数是1 向下移动a和n的最大公约数是1 计算向下移动能走的地方和向下能走的地方 相加>=n*m 也就是2*n*m/gcd(n,m)
D. Flip the Bit (Hard Version)
思路:计算每个区域的情况,得到一个总改变次数。还可以记录一下最大改变次数,输出两个之间的最大值。
E - Definitely Larger
思路:输入的p[i]数组要记录一下这个数字出现的下标在哪里,后续需要使用到下标,根据题目会注意到需要从后往前遍历(因为被支配的下标是取决于后面有多少个大于他 要保证下标大于并且p[i]大于 去构造q q后面的也要大于),记录当前这个数字在的下标,循环变量已经存好的答案,如果下标大于他 m++,如果结束m不足d[]个,直接无解,否则看一下当前下标要插入在哪个位置(需要记录m-d[],因为要大于他的刚好d[]个,那么其余的都要在前面),插入在第m-d[]个比他大的后面就可以找到正确位置,并且满足大于他的恰好d[]个
最后需要把所有的值从小到大填充上去 最小的值肯定在ans[0]的位置以此类推
