由于权值是在边上,所以很容易发现一个性质: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. 51. ExtJs4之Ext.util.JSON编码和解码JSON对象

    转自:https://blog.csdn.net/iteye_9439/article/details/82518158 1.decode() 该方法用于将符合JSON格式的String进行解码成为一 ...

  2. markdownpad2下载安装教程

    1.下载安装 http://markdownpad.com/download/markdownpad2-setup.exe 直接下载,安装过程中提醒要安装微软的一个什么环境,不用理会直接跳过,实测没有 ...

  3. 开源矿工README

    点击加入 NTMiner官方QQ群: 863725136 开源矿工内置的所有内核均为原版,开源矿工永远不会额外增加矿工支出: 开源矿工永远开源: 开源矿工永远不会去破解国人开发的内核: 下载地址 阿里 ...

  4. 下载谷歌地图封锁IP解决办法

    采用重新拨号,动态改变IP的方式.可以使用软件<易好用IP自动更换软件>

  5. 回收maven私仓过期垃圾

    login->scheduled tasks->add

  6. CSS——border

    表格细线: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  7. [转]Learn SQLite in 1 hour

    转载说明: 1.原文地址:http://www.askyb.com/sqlite/learn-sqlite-in-1-hour/ 2.译文地址:http://www.oschina.net/quest ...

  8. dom4j.jar 的调试方法

    1.将jar包的路径写在 classpath下 在cmd窗口中,查看 classpath的内容是否已经加上该路径,win7 下cmd窗口一定要是管理员身份执行 2.在D盘新建一个DOM4JWriter ...

  9. haproxy故障处理

    1. haproxy 在配置健康检查的时候,默认没有配置页面检查 ,通过端口状态来检测.后端IIS web服务开始可能 是一个站点,或者采用了基于域名的配置方式,导致目前站点停了,后端主机不能被hap ...

  10. Power Designer逆向操作(从mysql5.0生成数据库的物理模型)

    Power Designer逆向操作(从mysql5.0生成数据库的物理模型) 环境:powderdesigner12.5:mysql5.0 步骤: 1.  为指定的数据库配置MySQL的ODBC数据 ...