摘要:
"codeforces" 显然发现可以从右往左依次确定。 考虑求出前缀和,每次查询当前位置上的值,然后删掉当前数,动态维护一下前缀和就好了 对于查询值可以树状数组+二分$O(n\log^2n)$,也可以线段树$O(n\log n)$ ~~貌似树状数组+二分比线段树跑的要快~~ 代码: c++ inc 阅读全文
摘要:
"codeforces" 发现矩阵 $$ \begin{align } &0\ 1\ 2\ 3\\ &4\ 5\ 6\ 7\\ &8\ 9\ 10\ 11\\ &12\ 13\ 14\ 15\\ \end{align } $$ 每行和每列的$\rm xor$和为0,发现每个位置加上$16x$也不会改 阅读全文
摘要:
"codeforces" 我们设$f[i]$表示有多少个数的二进制下的子集值为$i$ 显然当$f[i] =2$时,$i$是可以通过$a_j\&a_k$得到的 然后我们枚举$a_i$,从高位到低位考虑,尽量多取$a_i$二进制下没有的位。 然后取最大值就行了,至于满足$i include includ 阅读全文
摘要:
"codeforces" 考虑算出$nxt_i$表示以$i$为左端点,不出现重复的数最远可以到的位置 然后枚举左端点$l$,枚举右端点$r$,如果当前区间内的最大值$mx r l+1$,我们就将右端点移到$mx+l 1$的位置上。 由于答案是$O(n)$的,所以总复杂度就是$O(n\log n)$ 阅读全文
摘要:
"codeforces" 线段树优化建图的裸题 代码: 阅读全文