当前位置: 首页 > news >正文

P4551 最长异或路径

最长异或路径

题目描述

给定一棵 n n n 个点的带权树,结点下标从 1 1 1 开始到 n n n。寻找树中找两个结点,求最长的异或路径。

异或路径指的是指两个结点之间唯一路径上的所有边权的异或。

输入格式

第一行一个整数 n n n,表示点数。

接下来 n − 1 n-1 n1 行,给出 u , v , w u,v,w u,v,w ,分别表示树上的 u u u 点和 v v v 点有连边,边的权值是 w w w

输出格式

一行,一个整数表示答案。

样例 #1

样例输入 #1

4
1 2 3
2 3 4
2 4 6

样例输出 #1

7

提示

最长异或序列是 1 , 2 , 3 1,2,3 1,2,3,答案是 7 = 3 ⊕ 4 7=3\oplus 4 7=34

数据范围

1 ≤ n ≤ 100000 ; 0 < u , v ≤ n ; 0 ≤ w < 2 31 1\le n \le 100000;0 < u,v \le n;0 \le w < 2^{31} 1n100000;0<u,vn;0w<231
插入
在这里插入图片描述

代码:

//每条路径 <a,b> 的 xor 和转化成 “(a 到根的 xor 和) xor (b 到根的 xor 和)”
#include<bits/stdc++.h>
using namespace std;
struct node{int left=0,right=0;
}root;
vector<node> trie;
vector<int> a[100001],b[100001];//连接情况记录在a数组,权重情况记录在b数组
int yihuo[100005];//搜索异或值的结果
//通过dfs搜出所有节点到根节点的异或值
void dfs(int x,int y){//x代表节点,y代表当前的异或值是多少for(int i=0;i<a[x].size();i++){yihuo[a[x][i]]=y^b[x][i];//当前异或值异或连接到的节点的权重dfs(a[x][i],yihuo[a[x][i]]);//继续往下搜}
}
//生成01字典树
void build(int x){//记录各个节点的左右节点编号,这里默认左节点储存0,右节点储存1int fa=0,len;//每次重新输入一个异或值生成01树的时候fa都要重新置0for(int i=(1<<30);i>0;i>>=1){//边的权值最大为2的31次方,说明边权的异或最大值也是len=trie.size();//树的节点if(x&i){//当前位为1,遍历右边的if(trie[fa].right==0){//没有右节点trie[fa].right=len;// cout<<fa<<" right "<<len<<endl;trie.push_back(root);//把空节点push_back进去fa=len;//下一次的父节点为当前的节点编号}else fa=trie[fa].right;    }else{//当前位为0,遍历左边的if(trie[fa].left==0){//没有左节点trie[fa].left=len;//给左节点编号// cout<<fa<<" left "<<len<<endl;trie.push_back(root);fa=len;}else fa=trie[fa].left;}}
}
int jisuan(int x){int ans=0,fa=0;cout<<x<<endl;for(int i=(1<<30);i>0;i>>=1){//i的初始值为1<<30是因为边的权值最大为2的31次方if(x&i){//当前位为1,由于是要求最长的异或路径,所以需要遍历左边的0,才能使得当前值为1if(trie[fa].left){ans+=i;// cout<<"left "<<ans<<" "<<trie[fa].left<<endl;fa=trie[fa].left;}else fa=trie[fa].right;}else{//当前位为0,由于是要求最长的异或路径,所以需要遍历右边的1,才能使得当前值为1if(trie[fa].right){ans+=i;// cout<<"right "<<ans<<" "<<trie[fa].right<<endl;fa=trie[fa].right;}else fa=trie[fa].left;}}// cout<<x<<" "<<ans;return ans;
}
void lesson1(){int n,x,y,z,ans=0;cin>>n;for(int i=1;i<n;i++){cin>>x>>y>>z;a[x].push_back(y);b[x].push_back(z);}dfs(1,0);trie.push_back(root);//0号节点,其左节点为0号节点,右节点为0号节点for(int i=1;i<=n;i++){build(yihuo[i]);// cin>>x;// cout<<x<<endl;// build(x);       }for(int i=1;i<=n;i++){ans=max(ans,jisuan(yihuo[i]));}cout<<ans<<endl;   // for(int i=1;i<=n;i++){//     cout<<i<<":";//     for(int j=0;j<a[i].size();j++)cout<<a[i][j]<<","<<b[i][j]<<" ";//     cout<<endl;// }// for(int i=1;i<=n;i++)cout<<yihuo[i]<<" ";//根据题目样例得到0 3 7 5// for(int i=0;i<trie.size();i++){//     cout<<i<<":"<<trie[i].left<<","<<trie[i].right<<endl;// }
}
int main(){lesson1();return 0;
}

相关文章:

P4551 最长异或路径

最长异或路径 题目描述 给定一棵 n n n 个点的带权树&#xff0c;结点下标从 1 1 1 开始到 n n n。寻找树中找两个结点&#xff0c;求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 输入格式 第一行一个整数 n n n&#xff0c;表示点数…...

鸿蒙OpenHarmony HDF 驱动开发

目录 序一、概述二、HDF驱动框架三、驱动程序四、驱动配置坚持就有收获 序 最近忙于适配OpenHarmonyOS LiteOS-M 平台&#xff0c;已经成功实践适配平台GD32F407、STM32F407、STM32G474板卡&#xff0c;LiteOS适配已经算是有实际经验了。 但是&#xff0c;鸿蒙代码学习进度慢下…...

深度学习:如何面对隐私和安全方面的挑战

深度学习技术的广泛应用推动了人工智能的快速发展&#xff0c;但同时也引发了关于隐私和安全的深层次担忧。如何在保护用户隐私的同时实现高效的模型训练和推理&#xff0c;是深度学习领域亟待解决的问题。差分隐私、联邦学习等技术的出现&#xff0c;为这一挑战提供了可能的解…...

【操作系统概念】第12章:大容量存储阶段

文章目录 0.前言12.1 概述12.2磁盘结构12.3 磁盘调度12.3.1 FCFS调度12.3.2 SSTF调度12.3.3 SCAN调度12.3.4 C-SCAN调度12.3.5 如何选择磁盘调度 0.前言 文件系统从逻辑上来看包括三部分。第10章讨论了文件系统的用户和程序员的接口。第11章描述了操作系统实现这种接口的内部数…...

UE5.1_使用技巧(常更)

UE5.1_使用技巧&#xff08;常更&#xff09; 1. 清除所有断点 运行时忘记蓝图中的断点可能会出现运行错误的可能&#xff0c;务必运行是排除一切断点&#xff0c;逐个排查也是办法&#xff0c;但是在事件函数多的情况下会很复杂且慢节奏&#xff0c;学会一次性清除所有很有必…...

rust开发100问?

Rust如何管理内存&#xff1f;Rust的所有权是什么&#xff1f;生命周期在Rust中如何工作&#xff1f;什么是借用在Rust中&#xff1f;如何在Rust中创建枚举类型&#xff1f;Rust中的trait是什么&#xff1f;如何定义并实现一个结构体&#xff08;struct&#xff09;的方法&…...

.net6Api后台+uniapp导出Excel

之前的这个是vue3写法&#xff0c;后端是.net6Api.net6Api后台VUE3前端实现上传和下载文件全过程_vue3 下载文件-CSDN博客 在现在看来似乎搞的复杂了&#xff0c;本次记录一下.net6Api后台uniapp导出Excel。 后端和之前的不一样&#xff0c;前端也和之前的不一样&#xff0c;…...

【OD】算法二

开源项目热度榜单 某个开源社区希望将最近热度比较高的开源项目出一个榜单&#xff0c;推荐给社区里面的开发者。对于每个开源项目&#xff0c;开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数据库里面统计了每个开源项目关注、收藏、fork、…...

《深度学习风暴:掀起智能革命的浪潮》

在当今信息时代,深度学习已经成为科技领域的一股强大力量,其应用领域涵盖了从医疗到金融再到智能交互等方方面面。随着技术的不断进步和应用的不断拓展,深度学习的发展势头愈发迅猛,掀起了一股智能革命的浪潮。本文将从基本原理、应用实例、挑战与未来发展方向、与机器学习…...

Arduin ESP32+epaper(电子墨水屏)时钟相册制作教程

Arduin ESP32 epaper(电子墨水屏)时钟相册制作教程 &#x1f516;epaper(电子墨水屏)采用的是&#xff1a;合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;&#x1f4cd;相关篇《Arduino框架下ESP32/ESP8266合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显…...

Django模型层(附带test环境)

Django模型层(附带test环境) 目录 Django模型层(附带test环境)连接数据库Django ORM在models.py中建表允许为空指定默认值数据库迁移命令 开启测试环境建表语句补充(更改默认表名)数据的增加时间数据的时区 多表数据的增加一对多多对多 数据的删除修改数据查询数据查询所有数据…...

(AliyunAIACP17)知识点:神经网络(深度学习)分析

摘要&#xff1a; 案&#xff0c;详细阐述了神经网络的实现步骤&#xff0c;并提供了相应的代码示例。此外&#xff0c;文章还涵盖了神经网络中的技巧与实践、性能优化与测试&#xff0c;以及常见问题与解答。最后&#xff0c;对神经网络在深度学习中的应用前景进行了展望。 …...

基于 HBase Phoenix 构建实时数仓(1)—— Hadoop HA 安装部署

目录 一、主机规划 二、环境准备 1. 启动 NTP 时钟同步 2. 修改 hosts 文件 3. 配置所有主机间 ssh 免密 4. 修改用户可打开文件数与进程数&#xff08;可选&#xff09; 三、安装 JDK 四、安装部署 Zookeeper 集群 1. 解压、配置环境变量 2. 创建配置文件 3. 创建新…...

XS2185:八通道PSE控制器产品

八通道PSE控制器产品-XS2185 芯片特性 八通道PSE 支持标准PD供电 支持非标PD供电 每个端口功率最大30W 12位端口电流监测 12位电源电压监测 支持直流负载断开检测 支持LED供电状态指示 支持过流保护 支持短路保护 Sifos基本测试通过 32-PIN…...

Selenium WebDriver API 中涉及的一些常用方法和类

Selenium WebDriver API 是 Selenium 提供的一组方法和类&#xff0c;用于控制浏览器和操作 Web 元素。这些 API 提供了丰富的功能&#xff0c;包括但不限于&#xff1a; 1. **查找元素**&#xff1a;通过不同的定位方式&#xff08;如ID、Class Name、XPath等&#xff09;在页…...

OJ_复数集合

题干 C实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <queue> #include <string> using namespace std;struct Complex {int re;int im;//构造函数Complex(int _re, int _im) {//注意参数名字必须不同re _re;im _im;} };//结构体不支…...

【学一点RISC-V】ACLINT(高级核心本地中断控制器)文档

RISCV架构 ACLINT文档 ACLINT原文档&#xff1a;https://github.com/riscv/riscv-aclint/blob/main/riscv-aclint.adoc 在这里进行了翻译以及校对&#xff0c;仅供参考&#xff0c;不正确的地方欢迎指出 1、介绍 【此 RISC-V ACLINT 规范定义了一组内存映射设备&#xff0c;这…...

grafana table合并查询

注&#xff1a;本文基于Grafana v9.2.8编写 1 问题 默认情况下table展示的是一个查询返回的多个field&#xff0c;但是我想要的数据在不同的metric上&#xff0c;比如我需要显示某个pod的读写IO&#xff0c;但是读和写这两个指标存在于两个不同的metirc&#xff0c;需要分别查…...

编程笔记 html5cssjs 007 文章排版 颜真卿《述张长史笔法十二意》

编程笔记 html5&css&js 007 文章排版 颜真卿《述张长史笔法十二意》 一、代码二、解释 这段代码定义了一个古文展示页面的结构和样式&#xff0c;同时本文内容也是书法爱好者的珍贵资料。 一、代码 <!DOCTYPE html> <html lang"zh-CN"> <hea…...

Yolov8模型用torch_pruning剪枝

目录 &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; 原理 遍历所有分组 高级剪枝器 &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680…...

.NET金融数据集成终极指南:如何快速获取Yahoo Finance股票数据

.NET金融数据集成终极指南&#xff1a;如何快速获取Yahoo Finance股票数据 【免费下载链接】YahooFinanceApi A handy Yahoo! Finance api wrapper, based on .NET Standard 2.0 项目地址: https://gitcode.com/gh_mirrors/ya/YahooFinanceApi 在金融科技快速发展的今天…...

协方差交叉:在相关性未知时,如何实现保守且鲁棒的多传感器数据融合?

1. 协方差交叉&#xff1a;当传感器"各说各话"时如何达成共识 想象一下你在玩一个多人协作游戏&#xff0c;每个队友都从不同角度观察同一个目标&#xff0c;但他们的报告可能存在误差甚至矛盾。这时候作为队长&#xff0c;你既不能完全相信某一个人&#xff0c;也不…...

揭秘OpenAI、DeepMind未公开的XAGI白皮书核心章节:4类不可协商的透明度基线要求

第一章&#xff1a;AGI的决策透明度与可解释性 2026奇点智能技术大会(https://ml-summit.org) AGI系统在医疗诊断、司法辅助与金融风控等高敏场景中的部署&#xff0c;正迫使研究者重新审视“黑箱”决策的伦理边界。当模型输出直接影响生命权、自由权或财产权时&#xff0c;仅…...

Python的__init_subclass__类装饰器链式调用与元类协作

Python的类装饰器与元类机制一直是其面向对象编程中的高级特性&#xff0c;而__init_subclass__的引入进一步丰富了类层次结构的控制能力。当开发者需要在不显式使用元类的情况下定制子类行为&#xff0c;或实现装饰器链式调用与元类的协作时&#xff0c;这一特性展现出强大的灵…...

3步搞定Windows USB驱动难题:libwdi全流程自动化解决方案

3步搞定Windows USB驱动难题&#xff1a;libwdi全流程自动化解决方案 【免费下载链接】libwdi Windows Driver Installer library for USB devices 项目地址: https://gitcode.com/gh_mirrors/li/libwdi 你是否曾经在Windows系统中连接USB设备时遭遇过"设备无法识…...

从概念到应用:一文读懂概率密度函数与累积分布函数的联系与区别

1. 随机变量&#xff1a;理解概率分布的基础 概率密度函数&#xff08;PDF&#xff09;和累积分布函数&#xff08;CDF&#xff09;是统计学中描述随机变量分布的两个核心工具。要真正理解它们&#xff0c;我们得从随机变量这个基础概念说起。随机变量就像是一个数学魔术师&am…...

题解:洛谷 AT_arc061_a [ABC045C] たくさんの数式

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

终极免费时钟应用:Simple Clock如何帮你告别混乱,轻松管理每一天?[特殊字符]

终极免费时钟应用&#xff1a;Simple Clock如何帮你告别混乱&#xff0c;轻松管理每一天&#xff1f;&#x1f680; 【免费下载链接】Simple-Clock Combination of a beautiful clock with widget, alarm, stopwatch & timer, no ads 项目地址: https://gitcode.com/gh_m…...

你的ESP32项目需要BGM?手把手教你用无源蜂鸣器做个迷你音乐盒(附《成都》《后来》等流行歌曲库)

用ESP32和无源蜂鸣器打造你的专属音乐盒&#xff1a;从《成都》到《后来》的完整实现指南 你是否想过给自己的智能家居项目添加一点音乐氛围&#xff1f;或者为机器人制作一个会唱歌的小彩蛋&#xff1f;ESP32开发板搭配无源蜂鸣器&#xff0c;就能实现这个有趣的想法。不同于简…...

3大核心功能解析:Obsidian本地AI助手如何重塑你的隐私优先知识工作流

3大核心功能解析&#xff1a;Obsidian本地AI助手如何重塑你的隐私优先知识工作流 【免费下载链接】obsidian-local-gpt Local Ollama and OpenAI-like GPTs assistance for maximum privacy and offline access 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-local-…...