
线性基
Lynstery
一只蒟蒻
展开
-
[线性基+贪心] BZOJ2460: [BeiJing2011]元素
题意给出n个元素的数集,每个数都有一个权值,求选出一个异或和不为0的子集,使得权值和最大。 N ≤ 1000,其他 ≤ 10^18题解经典线性基应用。 线性基可以判断某个数是否能在已插入线性基的数相互异或得到,这样就能判断这个数是否能选。 需要得到的权值最大,那么直接对于每件物品按权值排序,按权值从大到小插入即可。#include<cstdio>#include<algorithm>usi原创 2017-06-13 15:38:59 · 426 阅读 · 0 评论 -
[博弈+线性基] BZOJ3759: Hungergame
题意有n(n<=20)个箱子,每个箱子里面有ai(ai<=1000000000)个石头(怎么放进去的我就不知道了) 两个人轮流进行操作(女主角先手),每一次操作可以将任意个(大于0个)未打开的箱子打开(一开始所有的箱子都是关闭的), 或者在已经打开的一个箱子里拿走任意个(大于0个)石头(不能超过这个箱子现有的石头数)。 最后谁无法操作谁就输了。 现在给出n,和这n个箱子里的石头数ai,女主角原创 2017-06-13 14:40:37 · 478 阅读 · 0 评论 -
线性基——学习笔记
http://blog.youkuaiyun.com/qaq__qaq/article/details/53812883 https://blog.sengxian.com/algorithms/linear-basis https://www.cnblogs.com/vb4896/p/6149022.html 一些线代前置知识: 向量空间 \quad 定义 (F,V,+,⋅)(F, V, +, \c原创 2017-12-19 21:20:21 · 529 阅读 · 0 评论 -
[线性基] HDU3949: XOR
裸题。线性基消成对角后, 最高位为 i 的数是唯一的。这个性质很好,使得选的数集中最大数的最高位,在异或后一定是 11。设 bib_i 为线性基第 ii 小的数,kik_i 为二进制下第 ii 位。 答案就是 Xor b[i]ki \text{Xor } b[i]k_i。#include<cstdio>#include<cstring>#include<algorithm>using nam原创 2017-12-24 18:53:18 · 335 阅读 · 0 评论 -
[DFS树 + 线性基] BZOJ2115: [Wc2011] Xor
线性基裸题。需要知道一个东西:对于随意一条 11 到 nn 的路径的异或和,都可以通过任意一条 11 到 nn 路径的异或和与图中的一些环的异或和来组合得到。 然后就 DFSDFS 树找简单环,瞎搞搞…#include<cstdio>#include<algorithm>using namespace std;const int maxn=50005,maxe=200005;typedef原创 2017-12-24 19:30:12 · 387 阅读 · 0 评论 -
[线性基] BZOJ2844: albus就是要第一个出场
有个结论:一个可异或得到的数,用原来 nn 个数异或得到它都有 2n−cnt2^{n-cnt} 种组合方法。想想发现是很有道理的,就是不要把消出的 n−cntn-cnt 扔掉,00 怎么异或都不变的,所以是 2n−cnt2^{n-cnt}。 知道这个就做完了。#include<cstdio>#include<algorithm>using namespace std;const int MO原创 2017-12-24 21:20:10 · 430 阅读 · 0 评论