最近做过一些比较好的题
记下来,以后可能写个题解啥的
线性基插满前\(x\)个数说明一定有解,构造可以用原集合在线性基上的异或得到\(2^x-1\)个数,前缀异或后就是构造的排列。
q在线性基中的排名很好算,那么考虑重复的数量,对于每个数x,设线性基有\(cnt\)个元素,那么其可以被异或出来的方案数一定是\(2^{n-cnt}\),证明考虑对当前异或和加入线性基外的元素,和在线性基内的元素讨论,可以通过消掉保证不重复选。
暴力算sg函数,用类似整除分块的方法优化枚举,去除多枚举的重复状态。
嫌麻烦可以直接写点分治,但还是有更优秀的方法。
先离线下来,按\(r\)排序,每次加入\(a[r]\)后顺便维护出线性基中每个位置最靠右的可以更新为\(1\)的位置,这样就可以直接对询问计算答案。
完全可以在线,就是空间大点。
计数dp,直接计算所有都是偶数的情况减去有重复的情况和空集,最后除以\(m!\)表示组合。
洛谷 P6144 [USACO20FEB]Help Yourself P
先斯特林数展开,然后区间按\(l\)排序,分情况用线段树维护贡献。(感觉斯特林数会成为联赛套路?)