标题效果:鉴于无向图。右侧的每个边缘,求一个1至n路径,右上路径值XOR和最大

首先,一个XOR并能为一个路径1至n简单的路径和一些简单的XOR和环

我们开始DFS获得随机的1至n简单的路径和绘图环所有线性无关(两个或多个环异或得到)

然后在一些数中选出一个子集。使它们与一个给定的数的异或和最大,这就是高斯消元的问题了

利用高斯消元使每一位仅仅存在于最多一个数上 然后贪心求解就可以

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 50500
using namespace std;
typedef long long ll;
struct abcd{int to,next;ll f;
}table[200200];
int head[M],tot;
int n,m,top;
bool v[M];
ll _xor[M],stack[M<<2],ans;
void Add(int x,int y,ll z)
{table[++tot].to=y;table[tot].f=z;table[tot].next=head[x];head[x]=tot;
}
void DFS(int x)
{int i;v[x]=true;for(i=head[x];i;i=table[i].next){if(v[table[i].to])stack[++top]=_xor[x]^table[i].f^_xor[table[i].to];else_xor[table[i].to]=_xor[x]^table[i].f,DFS(table[i].to);}
}
void Gaussian_Elimination()
{int i,k=0;ll j;for(j=1ll<<62;j;j>>=1){for(i=k+1;i<=top;i++)if(stack[i]&j)break;if(i==top+1)continue;swap(stack[++k],stack[i]);for(i=1;i<=top;i++)if( (stack[i]&j) && i!=k )stack[i]^=stack[k];}
}
int main()
{int i,x,y;ll z;cin>>n>>m;for(i=1;i<=m;i++){scanf("%d%d%lld",&x,&y,&z);Add(x,y,z);Add(y,x,z);}DFS(1);Gaussian_Elimination();ans=_xor[n];for(i=1;stack[i];i++)if( (ans^stack[i])>ans )ans^=stack[i];cout<<ans<<endl;
}
//lld!!!!

版权声明:本文博客原创文章,博客,未经同意,不得转载。

BZOJ 2115 Wc2011 Xor DFS+高斯消元相关推荐

  1. bzoj 2115: [Wc2011] Xor(DFS+线性基)

    2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 3853  Solved: 1609 [Submit][Stat ...

  2. BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]

    2707: [SDOI2012]走迷宫 题意:求s走到t期望步数,\(n \le 10^4\),保证\(|SCC| \le 100\) 求scc缩点,每个scc高斯消元,scc之间直接DP 注意每次清 ...

  3. BZOJ 3270: 博物馆 [概率DP 高斯消元]

    http://www.lydsy.com/JudgeOnline/problem.php?id=3270 题意:一张无向图,一开始两人分别在$x$和$y$,每一分钟在点$i$不走的概率为$p[i]$, ...

  4. BZOJ 3143: [Hnoi2013]游走 高斯消元 期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3463  Solved: 1535 [Submit][Stat ...

  5. BZOJ 2115 [Wc2011] Xor ——线性基

    [题目分析] 显然,一个路径走过两边是不需要计算的,所以我么找到一条1-n的路径,然后向该异或值不断异或简单环即可. 但是找出所有简单环是相当复杂的,我们只需要dfs一遍,找出所有的环路即可,因为所有 ...

  6. BZOJ 2728 HNOI2012 与非 高斯消元

    题目大意:给定k位二进制下的n个数,求[l,r]区间内有多少个数能通过这几个数与非得到 首先观察真值表 我们有A nand A = not A 然后就有not ( A nand B ) = A and ...

  7. 【BZOJ2115】[Wc2011] Xor 高斯消元求线性基+DFS

    [BZOJ2115][Wc2011] Xor Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ...

  8. BZOJ 2337: [HNOI2011]XOR和路径( 高斯消元 )

    一位一位考虑异或结果, f(x)表示x->n异或值为1的概率, 列出式子然后高斯消元就行了 --------------------------------------------------- ...

  9. 线性代数五之高斯消元——[SDOI2010]外星千足虫,[HNOI2013]游走,[HNOI2011]XOR和路径,[hdu 4035]Maze

    多类型高斯消元杂题 [SDOI2010]外星千足虫 description solution code [HNOI2013]游走 description solution code [HNOI2011 ...

最新文章

  1. Loadrunner错误-26601、-27492、-27727处理方法
  2. python3 strip lstrip rstrip 删除字符串首尾指定字符
  3. android测试 课程设计,超星尔雅Android开发课程设计章节测试答案
  4. shell把字符串中的字母去掉,只保留数字
  5. tab enter键出现
  6. 【数字逻辑设计】Logisim构建多路选择器
  7. 客户服务支持管理软件—工单管理
  8. MyBatis之使用XML配置SQL映射(一)
  9. @Transactional什么情况才生效
  10. ue4手机ui_Epic Games工程师分享:如何在移动平台上做UE4的UI优化?
  11. 混音师的混音之道|处理母带和混音的差别?母带处理的真相(上)|MZD Studios
  12. 干货!面向多源数据融合的睡眠时序分类方法研究
  13. 计算机电脑配置组装心得,自己如何组装电脑主机?diy电脑组装教程图解详细步骤+装机心得(4)...
  14. 远心镜头与普通镜头拍摄工件孔径对比
  15. bootstrap切换tab页局部刷新_Rails 用 RJS 简单有效的实现页面局部刷新
  16. SLUB和SLAB的区别
  17. android录制mp3 github,GitHub - understanding/AndroidMP3Recorder: 为Android提供MP3录音功能[持续维护版]...
  18. lcds- data management part Unable to access UserTransaction in DataService
  19. 无法确定本地文件类型_如何从文件内容确定文件类型
  20. Mathtype使用小技巧

热门文章

  1. Linux 内核态与用户态通信 netlink
  2. 3.2.2.5 BRE运算符优先级
  3. Spring4基础 学习笔记(5) ---- Spring与Dao
  4. Nginx ab压力测试
  5. 执行力:Just Do It
  6. 解决同一页面中两个iframe互相调用jquery,js函数
  7. ionic助手 v1.9.0 一键式开发环境工具(告别命令行,超强功能)
  8. 后台无刷新修改字段js
  9. Qt中标准对话框实例,QObject::tr()的作用
  10. opencv系列-图像清晰度评价