BZOJ 2115: [Wc2011] Xor (线性基+生成树)

这篇博客介绍了如何解决BZOJ 2115问题,即在无向图中找到从1到n路径的最大异或和。作者通过构建任意生成树,并利用异或性质找出基本环,将问题转化为线性基问题,进而使用贪心策略找到最优解。文章包含题意解析、算法分析和实现代码。
摘要由CSDN通过智能技术生成

题意

给定一张无向图,求1->n的路径边权最大异或和。

分析

首先跑一颗任意生成树出来(DFS即可)
然后对于所有非树边,都形成一个环,我们叫它基本环。
通过异或的性质我们发现答案是选取一些基本环异或1~n在树上的路径异或和
所以我们把所有的基本环加入线性基,然后用1~n的路径去匹配贪心找最大值
基本环的寻找实际上结合在DFS中,用异或的性质可以算长度(不要去找LCA)

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=5e4+105,maxm=1e5+105;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值