BZOJ 2115 DFS+高斯消元

原创 2017年01月03日 16:07:24

思路:
先搞出来所有的环的抑或值 随便求一条1~n的路径异或和
gauss消元找异或和最大 贪心取max即可

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 200050
#define int long long
int n,m,xx,yy,zz,w[N],v[N],next[N],first[N],tot,vis[N],d[N],stk[N],tp;
void Add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
void add(int x,int y,int z){Add(xx,yy,zz),Add(yy,xx,zz);}
void dfs(int x){
    vis[x]=1;
    for(int i=first[x];~i;i=next[i]){
        if(!vis[v[i]])d[v[i]]=d[x]^w[i],dfs(v[i]);
        else if(d[v[i]]^d[x]^w[i])stk[++tp]=d[v[i]]^d[x]^w[i];
    }
}
void gauss(){
    for(int i=1ll<<62,flag=1,j;i;i>>=1){
        for(j=flag;j<=tp;j++)if(stk[j]&i)break;
        if(j==tp+1)continue;
        swap(stk[flag],stk[j]);
        for(int k=1;k<=tp;k++){
            if(k==flag)continue;
            if(stk[k]&i)stk[k]^=stk[flag];
        }
        flag++;
    }
}
signed main(){
    memset(first,-1,sizeof(first));
    scanf("%lld%lld",&n,&m);
    for(int i=1;i<=m;i++){
        scanf("%lld%lld%lld",&xx,&yy,&zz);
        add(xx,yy,zz);
    }
    dfs(1),gauss();
    for(int i=1;i<=tp;i++)d[n]=max(d[n],d[n]^stk[i]);
    printf("%lld\n",d[n]);
}

这里写图片描述

版权声明:本文由SiriusRen原创,但可以转载,因为我们是兄弟 爬虫能爬到这句话么哈哈哈 举报

相关文章推荐

BZOJ 2115 DFS+高斯消元

思路: 先搞出来所有的环的抑或值 随便求一条1~n的路径异或和 gauss消元找异或和最大 贪心取max即可//By SiriusRen #include #include #include ...

BZOJ 2115 Wc2011 Xor DFS+高斯消元

题目大意:给定一个无向图,每条边上有边权,求一条1到n的路径,使路径上权值异或和最大 首先一条路径的异或和可以化为一条1到n的简单路径和一些简单环的异或和 我们首先DFS求出任意一条1到n的简单路径以...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

BZOJ 2115 [Wc2011] Xor 高斯消元

BZOJ 2115 [Wc2011] Xor 高斯消元

BZOJ 2115|WC 2010|Xor|高斯消元

无向联通图上的路径使其边权Xor和最大。考虑一个路径,发现其由树边和非树边组成(SAM证明线性的时候也用到了这个) 树边可以很容易地xor出来啦,非树边呢? 由于非树边的两端点总在树上,因此1条非...

bzoj-2115 Xor

题意: 给出一个有权无向图; 求1到n的路径上的最大异或和; n 题解: 由于异或的性质,我们可以知道对于任意一条连通图上的路径的异或和; 都可以由另外一条路径异或若干个环的异或和...

bzoj3503【CQOI2014】和谐矩阵

高斯消元

【bzoj2115】 Xor

www.lydsy.com/JudgeOnline/problem.php?id=2115 (题目链接)题意:给出一张图,可能有重边和自环,在图中找出一条从1~n的路径,使得经过的路径的权值的异或和最...

【bzoj 1923】[Sdoi2010]外星千足虫(高斯消元)

执笔生宣,浅墨入画,绘一幅丹青风华

poj1222高斯消元解XOR方程

http://poj.org/problem?id=1222 题意:给定一个5×6的的矩阵,每次可以选择一个,使得它和四周的值翻转(开关变向),问怎样操作使得全为0. (PS:我交C++给我CE了...

bzoj1013——球形空间生成器(高斯消元)

高斯消元。根据题目解释我们只能得到n+1个二次方程,设球心坐标为(x1,x2,x3...xn) 那么就有 $(a1-x1)^2+(a2-x2)^2+...(an-xn)^2=r^2$ $(b1-x1...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)