摘要:
题目就是求 \(1 \wedge 2 \wedge 3 ..... \wedge N\) 的值。 我们有一个性质: \(a \wedge (a + 1) \wedge (a + 2) \wedge (a + 3) = 0\) 证明一下: 首先很明显,这四个数的二进制下不同的位数只有最后两位。 \(0 阅读全文
摘要:
维护一个区间的最大最小值用的,是离线做法,区间不能往回动。 用队列来实现。 队首就是答案,当值小的时候就踢出去,也有的虽然值大,但编号不在这个区间,也踢出去。 deque <node> q1, q2; int sc1, sc2; int Max[N], Min[N]; signed main() { 阅读全文
摘要:
单调栈 就是一个栈,不过栈内元素保证单调性。即,栈内元素要么从小到大,要么从大到小。而单调栈维护的就是一个数前/后第一个大于/小于他的数。 如何维护的,谁把他删了谁就是答案。 例如这组数据 5 1 4 2 3 5 来求每个数后面的比他大的值。 我们从从后往前枚举,从后往前的原因是我要考虑每个数后面的 阅读全文