http://poj.org/problem?id=2425 典型的sg函数,建图搜sg函数预处理之后直接求每次游戏的异或和。仍然是因为看不懂题目卡了好久。 这道题大概有两个坑, 1.是搜索的时候vis数组应该在函数内声明(似乎这是我经常在搜索里犯的错误,为了省一点空间整道题都写错了); 2.是n个 ...
分类:
其他好文 时间:
2017-12-22 18:32:21
阅读次数:
127
http://poj.org/problem?id=2975 题目始终是ac的最大阻碍。 问只取一堆有多少方案可以使当前局面为先手必败。 显然由尼姆博弈的性质可以知道需要取石子使所有堆石子数异或和为0,那么将某一堆a个石子变为a^异或和即可。 a1^a2^a3^...^an=y; a1^a2^a3^ ...
分类:
其他好文 时间:
2017-12-19 01:34:39
阅读次数:
148
可以用状压dp,也可以用线型基,但是状压dp没看台懂。。。 线型基的重要性质 性质一:最高位1的位置互不相同 性质二:任意一个可以用这些向量组合出的向量x,组合方式唯一 性质三:线性基的任意一个子集异或和不为0. 详细见:线型基介绍 题意:给一个数组,找相乘起来是完全平方数的所有组数 解法:先打70 ...
分类:
其他好文 时间:
2017-12-11 22:11:57
阅读次数:
194
trie树的异或和问题 本题是一道经典题,使用trie树维护所给出的集合,我们知道等比数列前n项的和比第n+1项小,所以本题可以使用贪心策略,对于每一个询问,我们从高位向低位匹配,寻找最大异或值,向下递归求解。 cpp include include include include include ...
分类:
其他好文 时间:
2017-12-09 12:00:05
阅读次数:
149
题目描述 给出一个长度为 $m$ 的序列 $a$ ,编号为 $a_1\sim a_m$,其中 $n$ 个位置的数已经确定,剩下的位置的数可以任意指定。现在令 $b$ 表示 $a$ 的前缀异或和,求 $\sum\limits_{i=1}^mb_i$ 的最小值。 输入 输入第一行两个非负整数n,m,分别 ...
分类:
其他好文 时间:
2017-12-08 18:23:11
阅读次数:
142
Wannafly挑战赛4. B 题意:求子区间异或和,要求区间长度在l到r之间,并且为偶数 题解:对于每一位算贡献,可以分奇偶来记录,计算的时候只加上奇偶性相同的就保证了为偶数,从大于l的点开始每次++,从大于r的点每次--,记录二进制上所有权值和 代码: ...
分类:
其他好文 时间:
2017-12-02 22:09:04
阅读次数:
132
线性基 非常高端 强制在线动态图 我们先搞出一个dfs树,然后所有非树边都和树边形成一个环。我们考虑什么情况会不连通,当且仅当树边和dfs序大于当前点的返祖边都被断掉才不连通,那么我们给每个非树边赋一个权值,树边的权值就是所有这些返祖边的权值的异或和,这样一遍dfs就行了。 然后就是怎么判断,因为树 ...
分类:
其他好文 时间:
2017-11-30 21:46:01
阅读次数:
103
找两个异或和最大的数 很容易想到trie树维护二进制 cpp include include include using namespace std; typedef long long ll; struct Node{ ll son[2], idd; bool hav[2]; Node(){ so ...
分类:
其他好文 时间:
2017-11-30 20:12:37
阅读次数:
190
http://codeforces.com/problemset/problem/617/E 首先,异或和满足 ai^ai+1^...^aj=(a1^...^ai-1)^(a1^...^aj) 所以维护前缀和可以O(1)算出一段区间的异或和 对于每次询问,可以考虑莫队算法暴力移动统计每个点在区间[l ...
分类:
其他好文 时间:
2017-11-28 21:48:30
阅读次数:
218
T1 5483. 【清华集训2017模拟11.26】简单路径T2 5484. 【清华集训2017模拟11.26】快乐树T3 5485. 【清华集训2017模拟11.26】字符串 T1 结论题,结论很显然任意两条路径权异或后,会将两条路径的交的贡献删去。然后用个桶存一下出现过的异或和,暴力判一下就可以 ...
分类:
其他好文 时间:
2017-11-27 23:48:56
阅读次数:
405