摘要:
[bzoj][1] [luogu][2] sol 这不是线性基思博题吗 我写的是树链剖分+st表,复杂度是$O(n\log^3n+Q\log^3n)$的,理论上过不了。 所以需要卡一下常。比如说线性基的$\rm merge$里面的那个if code cpp include include using 阅读全文
摘要:
[bzoj][1] [luogu][2] sol 首先很显然的,答案等于1到n的任意一条路径的异或和与若干个环的异或和的异或和。 因为图是联通的,那么就可以从一个点走到任意一个想要走到的环上,走完这个环后原路返回,那么中间的路径刚好抵消,所以这样是成立的。 现在需要把所有环的异或和丢到一个线性基里面 阅读全文
摘要:
[bzoj][1] sol 按照魔力值排序,然后从大到小能放则放。 这个贪心是很显然的,因为如果几个数放在一起不合法,那么去掉这些数中的任意一个都可以使之合法。所以肯定去掉最小的那个。也就是从大到小能加入则加入。 加入时用线性基算一下异或最小值,为0就说明不能加入。 code cpp include 阅读全文
摘要:
[模板]线性基 [luogu][1] 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。 $1\le n \le 50,0\le S_i \le 2^{50}$ 线性基 线性基其实就是构造出一组序列$p_0,p_1...p_n$,使得从这些数中任选一个子集的异或和的值域同等 阅读全文
摘要:
[bzoj][1] [luogu][2] sol 观察系数$k$可以发现一个很有趣的规律:系数恰好可以视作对相对数量较少的用户个数。(若两者数量相等则视作$B$少) 比如说,表格的第二行,当$i$的付费方式为$A$,$j$的付费方式为$B$,且$n_A include include using n 阅读全文