bzoj 2155 Xor
2024-09-30 01:37:15
题目大意:
求一条从$1 \rightarrow n$的路径是异或和最大
思路:
先随便求一棵生成树,然后求出所有环,对于所有环都可以去转一圈只取到这个环的贡献
那么就是线性基裸题了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<map>
#include<set>
#define ll long long
#define db double
#define inf 2139062143
#define MAXN 50100
#define MOD 998244353
#define maxi 123456789123456789LL
#define rep(i,s,t) for(register int i=(s),i##__end=(t);i<=i##__end;++i)
#define dwn(i,s,t) for(register int i=(s),i##__end=(t);i>=i##__end;--i)
#define ren for(register int i=fst[x];i;i=nxt[i])
#define pb(i,x) vec[i].push_back(x)
#define pls(a,b) (a+b)%MOD
#define mns(a,b) (a-b+MOD)%MOD
#define mul(a,b) (1LL*(a)*(b))%MOD
using namespace std;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-;ch=getchar();}
while(isdigit(ch)) {x=x*+ch-'';ch=getchar();}
return x*f;
}
ll p[],dis[MAXN],val[MAXN<<];
int n,m,fst[MAXN],to[MAXN<<],nxt[MAXN<<],cnt,vis[MAXN];
void add(int u,int v,ll w) {nxt[++cnt]=fst[u],fst[u]=cnt,to[cnt]=v,val[cnt]=w;}
void ins(ll x) {dwn(i,,) if((x>>i)&){if(!p[i]){p[i]=x;break;}x^=p[i];};}
ll query(ll x) {ll res=x;dwn(i,,) res=max(res,res^p[i]);return res;}
void dfs(int x)
{
vis[x]=;ren if(!vis[to[i]]) dis[to[i]]=dis[x]^val[i],dfs(to[i]);
else ins(dis[x]^dis[to[i]]^val[i]);
}
int main()
{
n=read(),m=read();int a,b;ll c;
rep(i,,m) a=read(),b=read(),c=read(),add(a,b,c),add(b,a,c);
dfs();printf("%lld\n",query(dis[n]));
}
最新文章
- Optimal Flexible Architecture(最优灵活架构)
- 前端资源构建-Grunt环境搭建
- C语言:函数处理结构体
- hibernate中get,load,list,iterate的用法及比较
- Octopus系列之模板快速开发手册
- 15套精美的免费界面设计 PSD 素材【免费下载】
- HDU 1232 畅通工程(并查集)
- 一头扎进EasyUI
- 前端学习-使用JS库Leaflet.js生成世界地图并获取标注地址经纬度。
- Android 判断当前设备是手机还是平板
- /etc/motd and /etc/issue
- android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理
- Implement Stack using Queues leetcode
- 使用keepalived使用主备热备份功能
- 济南清北学堂游记 Day 0.
- 28 自定义View流式布局
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165316
- Python第八课学习
- mac-内置截图-snapshot
- elasticsearch License 到期后更新步骤
热门文章
- 椭圆人头跟踪bmp图像序列 BMP Image Sequences for Elliptical Head Tracking
- Solidworks输出Autocad的DWG格式乱码怎么办
- mysql truncate table命令使用总结
- 手把手教你将本地项目文件上传至github
- Topcoder SRM625 题解
- css实现弹出窗体始终垂直水平居中
- Day1[下] - Python基础1 基本语法、流程控制
- AndroidManifest具体解释之Application(有图更好懂)
- Visual Studio 2010无法启动调试
- C# 操作World生成报告