BZOJ2115:[WC2011]Xor——题解
2024-08-30 01:38:06
https://www.lydsy.com/JudgeOnline/problem.php?id=2115
https://www.luogu.org/problemnew/show/P4151
这道题当年还是新题,现在都成线性基套路题了。
参考:https://blog.sengxian.com/algorithms/linear-basis
一个1~n路径值可以拆成一条1~n的路径值^几个环(因为去到环和回来的路的值被异或回去了)。
于是就变成了处理出所有环的异或值和所有1~n的无环路的异或值,然后把环的异或值扔到线性基里面,剩下的就是套路了。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<cctype>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=;
const int M=;
const int BASE=;
inline ll read(){
ll X=,w=;char ch=;
while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
while(isdigit(ch))X=(X<<)+(X<<)+(ch^),ch=getchar();
return w?-X:X;
}
struct node{
int to,nxt;
ll w;
}e[M];
int cnt,n,m,head[N],tot,num;
ll a[M],b[BASE+],s[M],t[M];
bool vis[N];
inline void add(int u,int v,ll w){
e[++cnt].to=v;e[cnt].w=w;e[cnt].nxt=head[u];head[u]=cnt;
}
void dfs(int u,ll sum){
vis[u]=;t[u]=sum;
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].to;ll w=e[i].w;
ll ans=sum^w^t[v];
if(vis[v]){
if(ans)a[++tot]=ans;
continue;
}
dfs(v,sum^w);
}
if(u==n)s[++num]=sum;
return;
}
int main(){
n=read(),m=read();
for(int i=;i<=m;i++){
int u=read(),v=read();ll w=read();
add(u,v,w);add(v,u,w);
}
dfs(,);
for(int i=;i<=tot;i++){
for(int j=BASE;j>=;j--){
if(a[i]>>j&){
if(b[j])a[i]^=b[j];
else{
b[j]=a[i];
break;
}
}
}
}
ll ans=;
for(int i=;i<=num;i++){
ll tmp=s[i];
for(int j=BASE;j>=;j--){
tmp=max(tmp,tmp^b[j]);
}
ans=max(ans,tmp);
}
printf("%lld\n",ans);
return ;
}
+++++++++++++++++++++++++++++++++++++++++++
+本文作者:luyouqi233。 +
+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+
+++++++++++++++++++++++++++++++++++++++++++
最新文章
- maven引入多个spring jar包中存在同名文件的问题
- 使用AFNetWorking 实现以Basic Authentication方式获取access-token
- const 和 readonly 修饰符的用法
- [HDOJ5584]LCM Walk(数论,规律)
- 初识HTML 5:关于它的三个三
- 回溯(UVA129)
- Remastersys打包你自己的ubuntu成iso文件,保存原来的所有配置
- iOS应用崩溃日志分析-备用
- wamp 虚拟目录的设置(转载)
- linux如何关闭selinux?
- SlopOne推荐算法
- 链接libtorrent库时出现的问题
- CAReplicatorLayer复制Layer和动画, 实现神奇的效果
- 201521123029《Java程序设计》第14周学习总结
- 8.3 GOF设计模式二: 适配器模式 Adapter
- zabbix3.0监控Windows服务器
- WebApi 增加身份验证 (OAuth 2.0方式)
- mysql的coalesce使用技巧
- php 获取读取文件内容
- jQuery 查找属性