【ybt】【字符串 trie 课过 例3】最长异或路径

MobaXterm终端工具个人学习版安装包及常用配置备份 资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。 立即下载

最长异或路径

题目链接:最长异或路径


题目描述

在这里插入图片描述

解题思路

我们可以预处理出从根节点到每一个节点路径上所有边权的异或值。

然后就和前缀统计一样了。

code

#include<iostream>
#include<cstdio>
using namespace std;

int n,ans;
int a[1000010];
int v[1000010];
int hd[1000010],tot;
int trie[1000010][2];

struct abc{
	int to,next,w;
}b[1000010];

void add(int x,int y,int w)
{
	b[++tot]=(abc){y,hd[x],w};
	hd[x]=tot;
}

void dfs(int x,int s)
{
	v[x]=1;
	a[x]=s;
	for(int i=hd[x];i;i=b[i].next)
		if(!v[b[i].to])
			dfs(b[i].to,s^b[i].w);
}

void in(int t)
{
	int now=1;
	for(int i=31;i>=0;i--)
	{
		int c=(t>>i)&1;
		if(!trie[now][c])
			trie[now][c]=++tot;
		now=trie[now][c];
	}
}

void fd(int t)
{
	int now=1,s=0;
	for(int i=31;i>=0;i--)
	{
		int c=!((t>>i)&1);
		if(trie[now][c])
			s+=(1<<i);
		else
			c=!c;
		now=trie[now][c];
	}
	ans=max(ans,s);
}

int main()
{
	cin>>n;
	for(int i=1;i<n;i++)
	{
		int x,y,w;
		scanf("%d%d%d",&x,&y,&w);
		add(x,y,w);
		add(y,x,w);
	}
	dfs(1,0);
	for(int i=1;i<=n;i++)
	{
		fd(a[i]);
		in(a[i]);
	}
	cout<<ans<<endl;
}
机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取 立即下载

相关推荐

深入解析ST MC SDK(WorkBench)工程结构:从零搭建FOC电机控制项目

本文深入解析了ST MC SDK(WorkBench)工程结构,详细介绍了如何从零搭建FOC电机控制项目。通过ST MC SDK和WorkBench工具链,开发者可以快速配置电机类型、控制策略等参数,生成完整的FOC控制工程。文章还拆解了工程结构中的核心控制模块、HAL硬件抽象层、芯片系统初始化和电机控制算法库,并提供了无传感器FOC实战技巧和常见问题排查指南,帮助开发者高效掌握STM32F407ZGT6开发板上的FOC电机控制技术。

weixin_29173777的博客 412

[Trie树]C. 【例题3】最长异或路径

解析 这道题我觉得恶心的地方就是要求一整条边的边权的异或给搞出来, 注意运算符不要用错了。 Code #include <bits/stdc++.h> #define N 100005 using namespace std; struct node { int x, to, nxt; }hd[N * 2]; struct Trie { int son [2]; }trie...

SSL_LJH的博客 104

Gromacs文件格式全解析:xtc vs trr vs cpt,哪种更适合你的模拟需求?

本文深入解析Gromacs分子动力学模拟中的三种核心文件格式xtc、trr和cpt,详细对比其技术特性和适用场景。xtc适合存储效率优先的场景,trr保留完整动力学数据,cpt确保模拟精确重启。通过实际配置示例和存储优化技巧,帮助用户根据模拟需求选择最佳格式组合,平衡分析灵活性与存储成本。

weixin_29281941的博客 96

【Ybtoj 第9章例3】最长异或路径【Trie树】

解题思路 考虑如何求一段路径的异或,我们知道,两个相同的数异或之后的值为0。 设s[i]s[i]s[i]表示根节点到点iii的异或值,则点lll到点rrr之间路径的异或值为 sls_lsl​ xorxorxor srs_rsr​,故,我们可以先预处理出s数组,答案变为maxmaxmax sis_isi​ xorxorxor sjs_jsj​ (1<=i<j<=n)(1<=i<j<=n)(1<=i<j<=n),这个问题等同于上一题——最大异或对...

在人间贩卖声音 223

如何用SoulChat2.0快速克隆你的心理咨询师?手把手教你搭建AI数字孪生体

本文详细介绍了如何利用SoulChat2.0框架快速构建心理咨询师的AI数字孪生体。通过其核心PsyDT技术,仅需少量真实案例即可合成风格数据并微调大模型,从而低成本地创建能高度模仿特定咨询师语言风格和专业技术的AI分身,适用于预约访谈、心理教育等辅助场景,实现高效的人机协作。

julia4scientist的博客 978

STM32F103开发实战:如何用CubeMX+CLion调整Flash起始地址(附完整CMake配置)

本文详细介绍了在STM32F103开发中如何使用CubeMX和CLion工具链调整Flash起始地址,包括链接脚本修改、系统文件配置和CMake工程适配。通过实战步骤和完整配置示例,帮助开发者实现固件双备份、OTA升级等高级功能,提升嵌入式开发效率。

5b6n7m8的博客 209

【Ybt OJ】[字符串算法 第4章] 字典树Trie树

「「「字符串算法」」」第444章 字典树 目录: A.前缀统计 B.最大异或对 C.最长异或路径 D.阅读理解 A.A.A. 例题111 前缀统计 分析: 一道TrieTrieTrie树模板题 需要支持插入(insert)(insert)(insert)和查询(query)(query)(query)两个操作就好了 CODE: #include<iostream> #include<cstdio> #include<algorithm> #include<cst

绫 382

Qt实现离线缓存地图(附完整源码)

Qt实现离线缓存地图(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 856

【ybt2021.11.12】T2 字典之序

T2 字典之序 link 解题思路 考虑贪心。 在选每个字母的时候要保证它的后面有所有没有出现过的字母。 每次从后往前找到直到每个未出现过字母都存在,记录下标。 在上一次操作的下标后一位到找到的下标之间取最小的字母。 可以保证这样找到的字符串字典序最小。 code #include<iostream> #include<cstring> #include<cstdio> #include<string> using namespace std; stri

你...你不要过来啊!!! 780

2、微软 Power Automate 入门指南

本文是一篇关于微软 Power Automate 的入门指南,详细介绍了 Power Automate 的基本概念、相关术语、登录方式以及如何创建一个简单的自动化流。文章还探讨了 Power Automate 在业务流程中的应用场景和优势,并展望了其高级功能和未来发展。适合希望快速入门 Power Automate 并提升业务自动化效率的读者。

corn8的博客 442

第28节:cesium 加载高程数据(含源码+视频)

cesium 加载高程(地形)数据

qq_29384639的博客 1741

【ybt】【树形DP】【例题2】结点覆盖

结点覆盖 LinkLinkLink 解题思路 这是一道树形DP。 设 fi,0f_{i,0}fi,0​ 表示以 iii 为根的子树全部被覆盖,iii 的父亲被选的最小值。 fi,1f_{i,1}fi,1​ 表示 iii 被选的最小值。 fi,2f_{i,2}fi,2​ 表示 iii 的儿子被选在最小值。 code #include<iostream> #include<cstdio> using namespace std; int n; int a[2010]; int f[

你...你不要过来啊!!! 543

DeepSmote:一种深度SMOTE方法

DeepSmote 一种全新的将深度学习与Smote相结合的过采样方法! 目前在许多领域已经被使用,值得大家关注学习!

走在深度学习前沿的小宋 1447

【ybt】【数据结构 RMQ 课过 例3】与众不同

与众不同 题目链接:YbtOJ 解题思路 设 lastilast_ilasti​ 表示 iii 上一次出现的位置。 设 preipre_iprei​ 表示以 iii 结尾的最长完美序列的启示位置,显然 prei=max⁡(prei−1,lastai)pre_i=\max(pre_{i-1},last_{a_i})prei​=max(prei−1​,lastai​​) 。 我们先处理出 lastlastlast 和 preprepre ,然后二分出一个 lenlenlen,lenlenlen 的左边可以直

你...你不要过来啊!!! 517

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

你...你不要过来啊!!! 461

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【ybt】【状压DP】【例题4】炮兵阵地

炮兵阵地 LinkLinkLink 解题思路 设 fi,j,kf_{i,j,k}fi,j,k​ 表示第 iii 行,第 iii 行状态为 jjj ,第 i−1i-1i−1 行状态为 kkk 的情况最大值。 枚举 lll 表示第 n−2n-2n−2 行的状态,在这 333 行状态都不重叠的前提下,状态转移方程如下: fi,j,k=max⁡(fi,k,l)f_{i,j,k}=\max(f_{i,k,l})fi,j,k​=max(fi,k,l​) code #include<iostream> #

你...你不要过来啊!!! 443

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【ybt】【状压DP】【例题1】种植方案

种植方案 LinkLinkLink 解题思路 状压 DPDPDP 模板题。 code #include<iostream> #include<cstdio> using namespace std; const int mod=1e8; int n,m; int a[20]; int q[1<<12],tot; int f[20][1<<12]; int main() { cin>>n>>m; for(int i=1;i&

你...你不要过来啊!!! 396

【冲刺 NOIP2022 模拟赛 B 组 Day5】A. 数字计数

【冲刺 NOIP2022 模拟赛 B 组 Day5】A. 数字计数

你...你不要过来啊!!! 371

【ybt】【数据结构 树状数组 课过 例3】严格上升子序列数

严格上升子序列数 题目链接:YbtOJ 解题思路 我们设 fi,jf_{i,j}fi,j​ 表示以 iii 结尾,长度为 jjj 的序列数。 如果直接暴力做,那是 O(n3)O(n^3)O(n3) 的时间复杂度。 我们可以离散化,然后用树状数组维护每一种方案数的情况。 其实和逆序对挺像的说(无端感受) code #include<algorithm> #include<iostream> #include<cstring> #include<cstdio>

你...你不要过来啊!!! 352

【ybt】【基算 深搜 课过 例3】虫食算

虫食算 题目链接:虫食算 感谢 @lzh@lzh@lzh 大佬的帮助 题目描述 解题思路 很明显这是一道深搜题 (不然它怎么会归到深搜专栏里呢) 。 可以搜索枚举每一个字母来寻找最佳答案。 但这样是 O(10n)O(10^n)O(10n) 的时间复杂度,肯定是过不了的,所以要加入剪枝。 如果当前情况已经不合法了,自然不能搜下去。 那么现在关键在于 check()check()check() 函数。 如果当前位三个数都被搜到过了,那么直接判断即可。但如果上一位有数未知,那么最多还可以对这一位贡献 111

你...你不要过来啊!!! 327

【ybt】【图论 强连通 课过 例1】有向图缩点

有向图缩点 题目链接:有向图缩点 题目描述 解题思路 强连通分量模板,用 TarjanTarjanTarjan 算法。 code #include<iostream> #include<cstdio> #include<queue> using namespace std; queue<int> q; int n,m; int ans; int tm,tt; int a[10010]; int v[10010]; int f[10010]; int d

你...你不要过来啊!!! 315

【ybt2021.11.12】T1 他的世界

T1 他的世界 link 解题思路 “暴力也能过” code #include<iostream> #include<cstdio> using namespace std; int T; int n,m; int main() { freopen("number.in","r",stdin); freopen("number.out","w",stdout); cin>>T; while(T--) { scanf("%d%d",&n,&

你...你不要过来啊!!! 314

【ybt】【数据结构 RMQ 课过 例4】矩阵最值

矩阵最值 题目链接:YbtOJ 解题思路 二维st表模板题。 code #pragma GCC optimize(2) #include<iostream> #include<cstdio> #include<cmath> #define int long long using namespace std; int n,m,T; int a[260][260]; int f[260][260][21][21]; signed main() { cin>&

你...你不要过来啊!!! 299

【ybt】【动态规划 区间 课过 例2】木板涂色

木板涂色 题目链接:YbtOJ/Luogu 解题思路 区间 DPDPDP 。 设 fl,rf_{l,r}fl,r​ 表示将区间 [l,r][l,r][l,r] 涂成目标形式的最小次数,转移方程如下: fl,r={minl<k≤r(fl,k−1+fk,r)(s[l]≠s[r])min(fl,r−1,fl+1,r)(s[l]=s[r]) f_{l,r}=\left\{ \begin{array}{l} min_{l<k\leq r}(f_{l,k-1}+f_{k,r})&(s[l]\ne

你...你不要过来啊!!! 287

【ybt】【基算 广搜 课过 例2】山峰和山谷

山峰和山谷 题目链接:山峰和山谷 题目描述 解题思路 广搜模板题。 注意是八连通。 只有低,则山峰 只有高,则山谷 如果周围有高有低,则非山峰也非山谷。 如果没高也没底,则即使山峰又是山谷。 code #include<iostream> #include<cstdio> using namespace std; const int xn[9]={0,0,1,0,-1,1,1,-1,-1}; const int yn[9]={0,1,0,-1,0,1,-1,1,-1}; i

你...你不要过来啊!!! 285

【ybt】【字符串 处理 课过 例3】单词替换

单词替换 题目链接:单词替换 题目描述 解题思路 从前往后扫,扫到被替换单词就输出替换单词,否则直接输出。 code /* =========================== 此代码无法过ybtoj的最后一个点 但是是本地答案没有问题 可能是编译环境不同 但是思路上没有任何问题 请见谅 =========================== */ #include<iostream> #include<cstdio> #include

你...你不要过来啊!!! 276
上一篇: 【ybt】【字符串 trie 课过 例2】最大异或对
下一篇: 【ybt】【字符串 trie 课过 例4】阅读理解
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值