P4551最长异或路径

链接

luogu

思路

从\(1\)开始\(dfs\)求出\(xor\)路径。然后根据性质\(x\)到\(y\)的\(xor\)路径就是\(xo[x]^xo[y]\)

代码

#include <bits/stdc++.h>
using namespace std;
const int _=1e5+7;
int xo[_],w[_],ans=-1,num=0;
struct node {int v,q,nxt;
}e[_<<1];
int head[_],tot;
void add(int u,int v,int q) {e[++tot].v=v;e[tot].q=q;e[tot].nxt=head[u];head[u]=tot;
}
int ch[_*30][2],cnt;
void insert(int x,int ad) {int p=0;for(int i=30;i>=0;--i) {bool k=x&(1<<i);if(!ch[p][k]) ch[p][k]=++cnt;p=ch[p][k];}
}
void query(int x) {int tmp=0,p=0;for(int i=30;i>=0;--i) {bool k=x&(1<<i);if(ch[p][!k]) p=ch[p][!k],tmp|=1<<i;else p=ch[p][k];} ans=max(ans,tmp);
}
void dfs(int u,int fa) {insert(xo[u],1);for(int i=head[u];i;i=e[i].nxt) {int v=e[i].v;if(v==fa) continue;xo[v]=xo[u]^e[i].q;dfs(v,u);       }
}
int main() {int n,u,v,q;scanf("%d",&n);for(int i=1;i<n;++i) {scanf("%d%d%d",&u,&v,&q);add(u,v,q),add(v,u,q);}dfs(1,0);for(int i=1;i<=n;++i) query(xo[i]);printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/dsrdsr/p/11405999.html

luoguP4551最长异或路径相关推荐

  1. P4551 最长异或路径

    P4551 最长异或路径 题意: 给定一棵 n 个点的带权树,结点下标从 1 开始到 n.寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有边权的异或. 题解: 我们 ...

  2. 洛谷 P4551 最长异或路径

    题目描述 给定一棵 nn 个点的带权树,结点下标从 11 开始到 NN .寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有节点权值的异或. 输入输出格式 输入格式: ...

  3. 01tire+洛谷P4551 最长异或路径

    题目: 给定一棵n个点的带权树,结点下标从1开始到N.寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有边权的异或. 输入格式 第一行一个整数NN,表示点数. 接下来 ...

  4. YBTOJ洛谷P4551:最长异或路径(trie树)

    洛谷传送门 文章目录 题目描述 解析 代码 题目描述 解析 本题关键就在于一点: 若把每个点的深度dep[i]定义为从根到节点边权的异或和 那么i到j的路径异或和可以表示为: dep[i] ^ dep ...

  5. 【Trie】最长异或路径(ybtoj Trie-3/luogu 4551)

    正题 ybtoj Trie-3 luogu 4551 题目大意 给你一棵树,让你找一条路径,使这条路径的亦或值最大 解题思路 对于每个数存下到根节点的亦或值,然后拿这些数去Trie中跑最大亦或 因为相 ...

  6. 【LeetCode】687. 最长同值路径

    一.题目描述 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 二.示例 示例 1: 输入: ...

  7. leetcode —— 687. 最长同值路径

    给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示.. -------------- 解题思路:使 ...

  8. 643 · 最长绝对文件路径

    643 · 最长绝对文件路径 描述 假设我们通过以下的方式用字符串来抽象我们的文件系统: 字符串"dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext"代 ...

  9. java最长同值路径_687.最长同路径值

    题目描述 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 输入: 5 / \ 4 5 ...

最新文章

  1. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧
  2. 易邮邮箱服务器的安装和配置
  3. SAP系统未清账和已清账的区分
  4. 简述http 和 https区别
  5. php修改js内容,js怎样修改html元素的内容?HTML DOM实现修改内容
  6. 如果你不懂备案,那我简单点跟你说
  7. 数据协作如何解决大数据的大问题
  8. unigui作中间件使用
  9. android-mock-gps
  10. 同源时钟/同步时钟/异步时钟/同源时钟之间时序约束/clk group
  11. 数据结构 —— 队列
  12. html中蝴蝶飞飞怎么制作,小学一年级美术蝴蝶手工制作课件
  13. 唯冠和苹果的官司打得热闹
  14. 微信小程序获取小程序版本号与服务器不符,微信小程序版本号比较
  15. 计算机编程语言的应用
  16. access应用是计算机吗,计算机access的应用技术.ppt
  17. 山东大学数据结构课程设计实验五(低风险出行系统)
  18. 基于Android的短信应用开发(三)——读取手机短信
  19. Java //PP2.6 编写一个应用程序,将英里转换为千米(1英里等于1.60935千米)。以浮点数类型读取用户输入的英里数
  20. 职场英语--会议邀请

热门文章

  1. python函数定义中参数列表里的参数是_python函数参数中的/和*是什么意思?
  2. java时间日期工具类_java日期处理工具类
  3. 关键字驱动小例子_example2
  4. UVA 2474 - Balloons in a Box 爆搜
  5. 通过NAT转发实现私网对外发布信息
  6. opencl 加速 c语言程序_Win10应用获得面向OpenCL和OpenGL的兼容层
  7. python 获取系统相关编码的函数
  8. doctype html h5,HTML DOCTYPE
  9. 计算机操作员实操高级试题,计算机操作员高级实操(以往考过,可做平时练习素材)答题.doc...
  10. mysql远程访问时间长无反应_远程MySQL访问需要很长时间