一个上午两道题,妥妥的作死。。。首先还是按照之前思路建立可持久化trie,然后发现了点问题。。。trie只能支持对于给定v求出最大xor值,也就是说我们要枚举a[i] (i ∈ [l, r]),于是单次询问复杂度O(n * 30),爆表于是想到了需要预处理,方法是分块,预处理复杂度O(n * (n ...
分类:
其他好文 时间:
2014-12-21 12:40:56
阅读次数:
332
"trie的经典应用" -- by hzwer我们把每个点到根的xor值记下来,然后找出两个xor值最大的即可(因为(a ^ c) ^ (b ^ c) = a ^ b)于是用trie把每个数的二进制位记下来,每次query的时候利用贪心,试图走到另一个儿子即可。 1 /**************....
分类:
其他好文 时间:
2014-12-20 23:28:26
阅读次数:
362
题解:在树上i到j的异或和可以直接转化为i到根的异或和^j到根的异或和。所以我们把每个点到根的异或和处理出来放到trie里面,再把每个点放进去跑一遍即可。代码: 1 #include 2 3 #include 4 5 #include 6 7 #include 8 9 #i...
分类:
其他好文 时间:
2014-12-19 14:11:36
阅读次数:
266
Codechef Xor it (March 12 challenge)...
分类:
其他好文 时间:
2014-12-18 13:37:19
阅读次数:
154
由于权值是在边上,所以很容易发现一个性质:d(x,y)=d(x,root) xor d(y,root)。 因为有了这个性质,那么就很好做了。对于每一个点统计到root的距离,记为f 数组。 将f数组里的每个值插进按照二进制位插进字典树里面。 枚举每一个点,然后在字典树中搜索最大的xor值就...
分类:
其他好文 时间:
2014-12-16 22:21:45
阅读次数:
232
1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,n...
分类:
其他好文 时间:
2014-12-16 00:53:01
阅读次数:
415
再计算器上输入以下数字,每输入一个数字,按一下“Xor”
分类:
其他好文 时间:
2014-12-15 13:25:03
阅读次数:
1487
题意:问整数n以内,有多少对整数a、b满足(1≤b≤a)且gcd(a, b) = xor(a, b)分析:gcd和xor看起来风马牛不相及的运算,居然有一个比较"神奇"的结论:设gcd(a, b) = xor(a, b) = c, 则 c = a - b这里有比较严格的证明。有了这个结论后,我们可以...
分类:
其他好文 时间:
2014-12-14 17:10:41
阅读次数:
151
题目大意:给出一个无向有权图,找出一条从1到n的路径,使得路径上权值的异或和最大,路径可以重复走Input第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目。 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边。 图中可能有重...
分类:
其他好文 时间:
2014-12-14 15:42:46
阅读次数:
139
题目大意:给你n个数(n#include#include#include#define maxn 3000#define LL __int64using namespace std;LL bin[maxn],a[maxn];int main(){ int n; scanf("%d",&n); ...
分类:
其他好文 时间:
2014-12-14 14:30:14
阅读次数:
154