摘要: 【题解】 x xor y的结果在二进制下有奇数个1,等价于x与y在二进制下的1的个数之和为奇数,因为x xor y减少的1的个数一定是偶数(两个数这一位都为1,xor的结果为0,减少了2个1) 那么答案就是序列中二进制下有奇数个1的数的个数 乘 二进制下有偶数个1的数的个数。 因为n有1e7,暴力算 阅读全文
posted @ 2018-10-23 15:47 Driver_Lao 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 【题解】 我们可以发现每次修改之后叶子结点到根的路径最多分为两段:一段白色或者黑色,上面接另一段灰色的。二分+倍增找到分界点,然后更新答案即可。 check的时候只需要判断当前节点对应的叶子结点的区间是否全部为同一种颜色,用树状数组维护所有叶子节点组成的序列的状态即可。 阅读全文
posted @ 2018-10-23 15:04 Driver_Lao 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 【题解】 可以发现每次推的操作就是把序列中每个数变为下一个数,再打一个减一标记;而每次加球的操作就是把球的位置加上标记,再插入到合适的位置。 用set维护即可。 阅读全文
posted @ 2018-10-23 14:55 Driver_Lao 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 【题解】 先建反向图,然后跑拓扑排序求出最长路。 将所有的点按照最长路从小到大分层,把上一层连向这一层的边按照边权为第一关键字、起点的排名为第二关键字排序。 按照这个顺序更新这一层的答案,按照这一层每个点被更新的顺序得到这一层的点的排名。 阅读全文
posted @ 2018-10-23 10:39 Driver_Lao 阅读(150) 评论(0) 推荐(0) 编辑