E

【线段树、区间修改、二分】

带区间修改的线段树经典题目。

前两个操作明显可以直接使用区间修改做。在节点上维护 中的两个系数 。 第三个操作,比较好的做法是在线段树上二分。 偷懒的做法是先二分然后再在线段树上查询。具体做法是:我们把未读标记成 1, 已读标记成 0. 对于位置 ,我们先求出后缀和 ,我们只需要求出 ,使得后缀和 ,并且让 最大。对位置 二分就可以。

G

【数论、思维】

把样例的数组排序,注意到最终得到的最小的正整数,其实是相邻两个数字的差的最小值。 不过题目给的样例太特殊了,再举一个比较一般的例子,发现最终数列的最小的正整数,是原来数组所有元素的 。设数组的最大值是 ,整个数组的 ,最终数组的长度是 ,把原来数组中能够被 整除的刨除,就是我们可以添加的整数的数量 ,如果它是奇数,那么先手必胜。否则后手必胜。