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

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

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.rkmt.cn/news/46812.html

相关文章:

  • 2025年11月磨床电主轴厂家新推荐:聚焦国产磨床主轴/进口磨床主轴/内圆磨床主轴/外圆磨床主轴测评!
  • 会员小程序
  • MySQL学习,详解分页查询(limit)
  • 英语_阅读_A new way to see the world:AR_待读
  • 2025篷房行业优选榜:华烨海特斯五星领跑 铝合金 / 装配式 / 工业篷房领域 4 家实力企业精准适配多场景
  • stm32使用SPI写W25Q32
  • docker - 1 安装
  • 最小二乘困难详解5:非线性最小二乘求解实例
  • ##题解##洛谷P1578##最大子矩形 扫描线法
  • 【Azure Developer】azd 安装最新版无法登录中国区问题二:本地Windows环境遇问题
  • Mac 下载 VMware 11.1.0-1.dmg 后如何安装?超简单教程(附安装包)
  • 在R中生成交互地图leaflet包
  • 重启 MariaDB 数据库服务
  • 重练算法(代码随想录版) day 7 -哈希表part2
  • 团队作业2——《需求规格说明书》
  • gmssl常用命令 - 需要持续更新
  • 实用指南:根据用户行为数据中的判断列表在 Elasticsearch 中训练 LTR 模型
  • 转转客服IM聊天系统背后的技术挑战和实践分享
  • 实验 5:ViT Swin Transformer
  • chatTTS源码版本地部署踩的坑
  • 第一讲机器学习基础
  • 第二十八天
  • 102302138 林楚涵 作业2
  • PWM妙用:解锁LED亮度调节与呼吸灯的LuatOS开发之旅
  • 主子式与顺序主子式
  • JAVA 随机函数
  • CF1327F AND Segments
  • Kimi会员双11砍价成功!0.99元首月链接分享
  • 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置) - 实践
  • 通用cursor rules总结