Live2d Test Env

随笔分类 -  线性基

摘要:题意:给定N,K,P,表示现在有一个集合{0, 1, ..., 2n - 1},问有多少个非空子集的异或和为K; 答案%P。(1 ≤ n ≤ 1018, 0 ≤ k ≤ min(2n - 1, 1018), 2 ≤ p ≤ 109, p is prime.) 思路:先抽离出一个线性基出来,然后非基部 阅读全文
posted @ 2019-09-05 10:22 nimphy 阅读(515) 评论(0) 推荐(0) 编辑
摘要:题意:给定数组,求所有异或起来为0的集和的大小之和。 思路:由于是集合大小,我们换成考虑每个元素在多少个集合里有贡献。 先生成线性基。 对于没有插入线性基的元素x,贡献是2^(N-base-1),因为x选择之后,其他非基元素无论选还是不选,都可以调整基来使得异或和为0。 对于插入线性基的元素x,我们 阅读全文
posted @ 2019-09-05 09:39 nimphy 阅读(254) 评论(0) 推荐(0) 编辑
摘要:pro: 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同)。两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴。可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿。拿走最后一根火柴的游戏者胜利。 本题的游戏稍微有些不同:在第一个回合中,第一个游戏 阅读全文
posted @ 2019-04-29 16:53 nimphy 阅读(343) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-01-19 21:58 nimphy 阅读(18) 评论(2) 推荐(0) 编辑
摘要:题意:给定N个数,Q次询问,求区间最大异或和。 思路:一开始想的线性基+线段树。单次线性基合并的复杂度为20*20,结合线段树,复杂度为O(NlogN*20*20);显然,超时。 超时代码: #include<bits/stdc++.h> #define pb push_back #define r 阅读全文
posted @ 2019-01-14 12:57 nimphy 阅读(1519) 评论(0) 推荐(3) 编辑
摘要:You are given an array a1,a2,…,an of integer numbers. Your task is to divide the array into the maximum number of segments in such a way that: each el 阅读全文
posted @ 2019-01-12 09:56 nimphy 阅读(540) 评论(0) 推荐(0) 编辑
摘要:XOR is a kind of bit operator, we define that as follow: for two binary base number A and B, let C=A XOR B, then for each bit of C, we can get its val 阅读全文
posted @ 2018-09-29 22:17 nimphy 阅读(589) 评论(0) 推荐(0) 编辑
摘要:相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术。那时人们就认识到,一个法杖的法力取决于使用的矿石。一般地,矿石越多则法力越强,但物极必反:有时,人们为了获取更强的法力而使用了很多矿石,却在炼制过程中发现魔法矿石全部消失了,从而无法炼制出法杖,这个现 阅读全文
posted @ 2018-09-29 20:46 nimphy 阅读(176) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示