题目大意
一棵nn个点的树,每个点有点权GiG_i。
有qq个询问,每次询问在点xx到点yy路径上,选择一些点,使得异或和最大,这个最大和为多少。
1≤n≤2×104,1≤q≤2×105,Gi∈[0,260)1\le n\le2\times10^4,1\le q\le2\times10^5,G_i\in[0,2^{60})
题目分析
对于小数据我们可以想到一种高斯消元解异或方程组...
分类:
其他好文 时间:
2016-07-19 11:05:03
阅读次数:
227
当时Astar复赛的时候只做出1题,赛后补题(很长时间后才补,懒真是要命),发现这是第二简单的 分析: 这个题,可以每次二分区间的最小异或和 进行check的时候用dp进行判断,dp[i][j]代表前i个元素分成j个区间,j是最后一个区间的最后一个元素 如果dp[i][j]为真,表明每个区间长度大于 ...
分类:
其他好文 时间:
2016-07-02 21:29:52
阅读次数:
208
一开始以为是点权然后一直不会写QAQ 读完题发现是边权... u到v的路径异或和=根到u的路径异或和 异或 根到v的路径异或和 拿个trie或者是线段树记录一下就好了 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #inc ...
分类:
其他好文 时间:
2016-06-18 16:43:32
阅读次数:
158
一个原来写的题。 既然最后是nim游戏,且玩家是先手,则希望第二回合结束后是一个异或和不为0的局面,这样才能必胜。 所以思考一下我们要在第一回合留下线性基 然后就是求线性基,因为要取走的最少,所以排一下序,从大到小求。 1 #include<iostream> 2 #include<cstdio> ...
分类:
其他好文 时间:
2016-06-17 12:39:35
阅读次数:
226
学了新的忘了旧的,还活着干什么 题意:一些盒子,每步可选择打开盒子和取出已打开盒子的任意多石子,问先手是否必胜 搬运po姐的题解: 先手必胜的状态为:给出的数字集合存在一个异或和为零的非空子集,则先手必胜 证明: 首先我们有状态A:当前的所有打开的箱子中的石子数异或和为零,且所有关闭的箱子中的石子数 ...
分类:
其他好文 时间:
2016-06-17 11:05:06
阅读次数:
135
看到异或就去想前缀和(⊙o⊙) 这个就是正反做一遍最大异或和更新答案 最大异或就是很经典的可持久化Trie,从高到低贪心 WA: val&(1<<(base-1))得到的并不直接是1/0 1 #include<bits/stdc++.h> 2 #define ll long long 3 #defi ...
分类:
其他好文 时间:
2016-06-08 00:22:08
阅读次数:
312
比赛的时候没仔细想,赛后一想这题其实挺简单的,先求出序列的异或前缀和,然后将异或前缀和建出一颗trie树,然后我们可以二分答案,把问题变成判定性问题,判定是否存在一种方案,使得所有的分组的异或和都大于等于这个二分的答案,然后就可以dp了,用f[i][j]表示到j为止能不能分成i组,f[i][j]=f ...
分类:
其他好文 时间:
2016-05-29 21:30:03
阅读次数:
190
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3282 给出n个点以及权值,四种操作: 0.求x,y路径上的点权值的异或和. 1.连接x,y. 2.断开x,y. 3.将x的权值改为t. 分析 LCT模板题. 说几点自己的感悟和需要注意的地方吧( ...
分类:
其他好文 时间:
2016-05-27 23:35:18
阅读次数:
199
可持久化trie。 一个重要的思想是前缀和。 然后SB错误调了一晚上。 ...
分类:
其他好文 时间:
2016-05-27 21:36:34
阅读次数:
128
SCU - 4494
给定两个序列,问从两个序列中各取一个值的异或和最大为多少
把 A序列中的数字看成一个二进制的 01串,然后存到 Trie树里
然后将 B序列的数字同样看成一个 01串,然后在 Trie树上从高位到低位贪心地查找
如果B序列中查找的 01串当前位为 0,则找 Trie树上为 1的子儿子
否则就只能走为 0的右儿子,反之亦然,然后往下走
时间复杂度 O(N)#inclu...
分类:
其他好文 时间:
2016-05-12 15:52:15
阅读次数:
224