Luogu P4151 [WC2011] 最大XOR和路径 题解

news/2025/11/11 20:42:03/文章来源:https://www.cnblogs.com/Tsuukaku/p/19211550

Link

考虑我们在 01-Trie 上是怎么做的?是不是找到一段从根到 LCA 的东西相等然后处理不相等的后面部分?同理,我们对于这张图尝试用 DFS 处理出每个点的某一种路径答案,然后用线性基尝试代替求最优。

具体地,对于这个题我们两条路径如果在某个节点 \(x\) 相交,则在 \(x\) 记录两条路径的异或差 \(d\)。然后选择一条路径接着走,直到走到 \(n\),记录当前答案为 \(g\),比较 \(g, g \oplus d\) 的大小,较大者路径更优。

通过 DFS 在路径交点处处理出一堆异或差,记有 \(c\) 个这样的标签,则对这 \(2^c\) 个差值插入到线性基中,对 \(query\) 调用初值 \(g\) 求解。

#include <bits/stdc++.h>using i64 = long long;constexpr int N = 5e4 + 7;
constexpr int M = 2e5 + 7;int n, m, t;
int vis[N];
i64 xad[N];std::vector<std::pair<int, i64>> adj[N];struct LiB {i64 w[107];void insert(i64 x) {for (int i = 60; ~i; i--) {if (!(x & (1ll << i)))continue;if (!w[i]) { w[i] = x; return; }x ^= w[i];}}i64 query(i64 x) {i64 res = x;for (int i = 60; ~i; i--) {res = std::max(res, (res ^ w[i]));}return res;}
} li;void dfs(int u, i64 x) {vis[u] = 1; xad[u] = x;for (auto [v, w] : adj[u]) {if (!vis[v])dfs(v, x ^ w);elseli.insert(xad[v] ^ (x ^ w));}
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cin >> n >> m;for (int i = 1; i <= m; i++) {int u, v; i64 w;std::cin >> u >> v >> w;adj[u].push_back({v, w});adj[v].push_back({u, w});}dfs(1, 0);std::cout << li.query(xad[n]) << "\n";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年11月磨床电主轴厂家新推荐:聚焦国产磨床主轴/进口磨床主轴/内圆磨床主轴/外圆磨床主轴测评!

在精密制造产业升级浪潮中,磨床电主轴作为设备 “核心引擎”,直接决定加工精度与生产效率。2025 年国内磨削用电主轴市场规模持续扩容,国产替代进程加速,一批深耕技术的企业脱颖而出。以下结合技术实力、服务能力与…

会员小程序

https://www.vmiaopu.com/ https://vip.yunkemai.com/index.html https://zd.drip.im/ 小结建议若您希望“基础且价格更低”:推荐云客买或妙铺。若您希望“功能较完整、未来可扩展”:推荐水滴智店。在选择前,建议重…

MySQL学习,详解分页查询(limit)

MySQL学习,详解分页查询(limit)MySQL学习,详解分页查询(limit) limit介绍limit⽤来限制select查询返回的⾏数,常⽤于分页等操作。语法:select 列 from 表 limit [offset,] count;说明:offset:表⽰偏移量,通俗点…

英语_阅读_A new way to see the world:AR_待读

A new way to see the world 看世界的新方式 Welcome to TechExpo: Explore the Future of AR! 欢迎来到科技博览会:探索增强现实(AR)的未来! Discover how Augmented Reality (AR) is changing the way we learn,…

2025年11月腻子粉厂家新推荐榜:聚焦环保腻子粉/植物腻子粉/净醛腻子粉/健康腻子粉/无味腻子粉环保性能深度解析!

2025年,建筑建材行业绿色化转型加速,腻子粉作为墙面装修核心基础材料,其环保性、耐用性与适配性成为市场关注焦点。上海作为建材创新高地,汇聚众多优质腻子粉企业。本次榜单结合产品性能检测、工程案例反馈及市场口…

深入解析:嵌入式软件架构--按键消息队列2(组合键,按键转义与三种消息模式)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025聚脲涂料行业优质厂家推荐榜:宁国创遂领衔,手工 / 喷涂 / 天冬聚脲涂料实力派齐聚

2025年聚脲涂料市场规模持续扩容,环保化、功能化、定制化成为发展核心趋势,手工聚脲涂料、喷涂聚脲涂料、天冬聚脲涂料、透明聚脲涂料等细分品类需求激增。基于产能实力、技术创新、环保合规及场景适配性等维度,精选…

2025优质弯管厂家推荐榜:合肥翼达机械五星领跑,安徽企业助力产业升级

弯管作为工业生产中的关键管件,其加工精度、材质适配性与工艺稳定性直接影响下游多个领域的产品质量。为展现区域优质弯管企业实力,本次 2025 推荐榜聚焦安徽地区,筛选出三家各具特色的弯管相关企业,其中合肥市翼达…

Redisson源码剖析-可重试机制的实现

private <T> RFuture<Long> tryAcquireAsync(long waitTime, long leaseTime, TimeUnit unit, long threadId) {if (leaseTime != -1) {return tryLockInnerAsync(waitTime, leaseTime, unit, threadId, R…

2025发泡混凝土优质厂家推荐榜:云南锦乐五星领跑,西南三家企业凭特色实力入围

在绿色建筑理念深化的当下,发泡混凝土凭借轻质、保温、环保的核心优势,成为建筑保温、地基填充、市政配套等场景的优选材料。2025 年行业推荐榜聚焦西南市场,筛选出 4 家实力企业,云南锦乐建筑工程有限公司以综合优…

2025篷房行业优选榜:华烨海特斯五星领跑 铝合金 / 装配式 / 工业篷房领域 4 家实力企业精准适配多场景

随着临时空间需求向安全化、定制化、长效化升级,铝合金篷房、装配式篷房、工业篷房等产品成为多领域灵活空间解决方案的核心选择。2025 年行业榜单聚焦技术实力、场景适配度与服务品质,精选 4 家优质企业,其中华烨海…

2025浸没式/液冷超充/新能源车/超充站领域实力厂家排行榜:中碳创新领衔,四大品牌重塑新能源车补能生态

随着新能源车保有量持续攀升,液冷超充凭借高效补能优势成为行业主流,超充设备、超级充电站等配套设施需求激增。以下榜单聚焦技术实力与场景落地能力,精选 4 家标杆企业,为行业及用户提供参考。 中碳创新(北京)科…

2025国内AI获客公司排行榜:全平台精准破局,4 家企业领跑抖音/快手/小红书获客赛道

2025 年生成式 AI 重塑搜索生态,AI 获客成为企业增长核心引擎,覆盖抖音、快手、视频号、小红书的全域精准获客服务备受青睐。这份榜单聚焦国内 AI 获客领域,基于技术实力、场景适配性与用户口碑,精选 4 家优质企业…

HNOI2016 序列

HNOI2016序列 题意 给定 \(n\) 和 \(m\) 以及序列 \(a\{n\}\)。有 \(m\) 次询问,每次给定区间 \([l,r]\in[1,n]\),求 \[\sum_{l\le l\le r\le r}\min_{i=l}^{r}a_i \]数据范围:\(1\le n,m\le 10^5\),\(|a_i|\le 10…

2025年山东画室机构实力推荐:济南大道画室领跑美术艺考培训新标准

随着艺术教育行业持续升级,2025年的美术培训市场正迎来专业化、体系化的发展新阶段。在山东地区,画室数量众多但教学质量参差不齐,学生家长在选择时往往面临教学实力、师资水平、升学成果等多重考量。为帮助广大家庭…

编程老鸟请注意

我发现getwc(fp)速度很慢。看了下文档: The getwc() function or macro functions identically to fgetwc(). It may be implemented as a macro, and may evaluate its argument more than once. There is no reason…

stm32使用SPI写W25Q32

SPI.h#ifndef __SPI_H #define __SPI_H#include "stm32f10x.h"#define SPI_CS_H GPIO_SetBits(GPIOB, GPIO_Pin_12) #define SPI_CS_L GPIO_ResetBits(GPIOB, GPIO_Pin_12)#define SPI_SCK_H GPIO_SetBits(G…

2025年济南画室培训机构最新推荐:济南画室/济南艺考画室/山东美术艺考培训/山东画室/专业教学,个性化辅导新标杆

随着艺术教育行业不断规范化、教学体系持续升级及艺考竞争加剧,美术培训已从单一技能传授转向综合素质培养。2025年,艺考画室市场预计将进一步整合,优质资源向教学实力强、师资团队专业、服务体系完善的机构集中。然…

Flutter零基础极速入门到进阶实战(视频教程) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解 P13524 [KOI 2025 #2] 跳跃

Solution 考虑已知一个排列 \(p\) 怎么推出 \(c\),显然是维护差分标记 \(t\),对于 \(p_i,p_{i+1}\),给 \(t_{\min(p_i,p_{i+1})}\gets t_{\min(p_i,p_{i+1})}+1\) 以及 \(t_{\max(p_i,p_{i+1})}\gets t_{\max(p_i,p…