由于权值是在边上,所以很容易发现一个性质:d(x,y)=d(x,root) xor d(y,root)。

  因为有了这个性质,那么就很好做了。对于每一个点统计到root的距离,记为f 数组。

  将f数组里的每个值插进按照二进制位插进字典树里面。

  枚举每一个点,然后在字典树中搜索最大的xor值就可以了。

Program CODEVS1187;
const maxn=;
type arr=record
u,v,w,next:int64;
end;
type arr1=record
next:array[..] of longint;
end;
var eg:array[..maxn*] of arr;
last:array[..maxn] of longint;
fa:array[ ..maxn] of longint;
f:array[..maxn] of int64;
T:array[..maxn*] of arr1;
a:array[..] of longint;
n,u,v,w,root,mx,num,m,k,sum,ans,now:int64;
i,j:longint;
procedure add(u,v,w:longint);
begin
inc(j);
eg[j].u:=u;
eg[j].v:=v;
eg[j].w:=w;
eg[j].next:=last[u];
last[u]:=j;
end;
procedure dfs(u:longint;sum:int64;fa:longint);
var i:longint;
begin
f[u]:=sum;
i:=last[u];
while i<> do
begin
if eg[i].v<>fa then
dfs(eg[i].v,sum xor eg[i].w,u);
i:=eg[i].next;
end;
end;
begin
readln(n);
for i:= to n- do
begin
readln(u,v,w);
add(u,v,w);
add(v,u,w);
end;
root:=;
dfs(root,,);
{---------------------------------------------------}
mx:=;
for i:= to n do if f[i]>mx then mx:=f[i];
j:=mx; num:=;
while j> do
begin
inc(num);
j:=j div ;
end;
m:=num; k:=;
for i:= to n do
begin
fillchar(a,sizeof(a),);
j:=f[i]; num:=;
while j> do
begin
inc(num);
a[num]:=j mod ;
j:=j div ;
end;
now:=;
for j:=m downto do
if T[now].next[a[j]]<> then now:=T[now].next[a[j]] else
begin
inc(k);
T[now].next[a[j]]:=k;
now:=k;
end;
end;
ans:=;
for i:= to n do
begin
fillchar(a,sizeof(a),);
j:=f[i]; num:=;
while j> do
begin
inc(num);
a[num]:=j mod ;
j:=j div ;
end;
now:=; sum:=;
for j:=m downto do
if T[now].next[-a[j]]<> then
begin
sum:=sum*+-a[j];
now:=T[now].next[-a[j]];
end
else
begin
sum:=sum*+a[j];
now:=T[now].next[a[j]];
end;
if sum xor f[i]>ans then ans:=sum xor f[i];
end;
writeln(ans);
end.

CODEVS1187 Xor最大路径 (Trie树)的更多相关文章

  1. HDU 4825 Xor Sum (trie树处理异或)

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)Total S ...

  2. HDU4825 Xor Sum(贪心+Trie树)

    Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeu ...

  3. Xor - Trie树

    题目描述 求一棵带边权的树的一条最大 Xor 路径的值.这里的"路径"不一定从根到叶子结点,中间一段路径只要满足条件也可以. 输入格式 第一行,一个整数 N ,表示一颗树有 N 个 ...

  4. usaco6.1-Cow XOR:trie树

    Cow XOR Adrian Vladu -- 2005 Farmer John is stuck with another problem while feeding his cows. All o ...

  5. BZOJ5338 [TJOI2018] Xor 【可持久化Trie树】【dfs序】

    题目分析: 很无聊的一道题目.首先区间内单点对应异或值的询问容易想到trie树.由于题目在树上进行,case1将路径分成两段,然后dfs的时候顺便可持久化trie树做询问.case2维护dfs序,对d ...

  6. 51nod 1295 XOR key (可持久化Trie树)

    1295 XOR key  题目来源: HackerRank 基准时间限制:1.5 秒 空间限制:262144 KB 分值: 160 难度:6级算法题   给出一个长度为N的正整数数组A,再给出Q个查 ...

  7. 51nod 1295 XOR key | 可持久化Trie树

    51nod 1295 XOR key 这也是很久以前就想做的一道板子题了--学了一点可持久化之后我终于会做这道题了! 给出一个长度为N的正整数数组A,再给出Q个查询,每个查询包括3个数,L, R, X ...

  8. HDU 5269 ZYB loves Xor I Trie树

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5269 bc:http://bestcoder.hdu.edu.cn/contests/con ...

  9. [TJOI2018] Xor 异或 (可持久化Trie,树链剖分)

    题目描述 现在有一颗以 1 为根节点的由 n 个节点组成的树,树上每个节点上都有一个权值 \(v_i\).现在有 Q 次操作,操作如下: 1 x y :查询节点 x 的子树中与 y 异或结果的最大值. ...

随机推荐

  1. AJAX异步实现

    AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容. <head> <meta charset="utf-8"> & ...

  2. [Swift通天遁地]二、表格表单-(5)实现表格下拉和上拉刷新效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. Akka源码分析-深入ActorRef&ActorPath

    上一节我们深入讨论了ActorRef等相关的概念及其关系,但ActorRef和ActorPath的关系还需要再加以分析说明.其实还是官网说的比较清楚. “A path in an actor syst ...

  4. 分享一些对IT人员非常好用的资源

    前言 分享一下本人工作至今整理的一些好用的资源,这些资源主要是一些工作和生活中用到的文档.软件和网站. 文档主要是面试相关的文档和技术文档,其中面试文档主要是Java这块的,技术文档就有很多,除了Ja ...

  5. [转]linux之磁盘配额(quota)

    转自:http://www.jb51.net/LINUXjishu/78446.html 磁盘配额(quota)比较常用的几个情况是: * 针对WWW server,例如:每个人的网页空间的容量限制 ...

  6. 【java基础】java中重载与重写的区别

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载Overloading是一个类中多态性的一种表现. ( ...

  7. 项目管理01--使用Maven构建项目(纯干货)

    目录 1. Maven基础知识 2. Maven实战.开发.测试.打包.部署一个Web项目 一.Maven基础知识 Maven坐标 Maven提供了一个中央仓库,里面包含了大量的开源软件的jar包,只 ...

  8. JQuery文档加载完成执行js的几种方法

    js中文档加载完毕.一般在body加一个onload事件或者window.onload = function () {} jQuery中有好多写法,平时也不注意,别人一问,还真觉得头大. 下面是我整理 ...

  9. 在Windows下安装Elasticsearch5.0

    1.准备工作 安装和配置Java环境 2.下载 地址:https://www.elastic.co/downloads/elasticsearch 老版本:https://www.elastic.co ...

  10. Centos6.7 ELK日志系统部署

    Centos6.7 ELK日志系统部署 原文地址:http://www.cnblogs.com/caoguo/p/4991602.html 一. 环境 elk服务器:192.168.55.134 lo ...