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原创,未经允许不得转载

【BZOJ2115】Xor,第一次的线性基

梁哥,我们有你智障吗
  • xym_CSDN
  • xym_CSDN
  • 2016年08月26日 21:11
  • 659

BZOJ 2115 Wc2011 Xor DFS+高斯消元

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

【bzoj2115】[Wc2011] Xor 线性代数

好坑爹呀,现在都不知道自己退没退役,还不让回去学文化课,还要被带去省队集训被虐 …… 这个东西比较复杂呀!!! 首先是第一个问题,给定n个数,选出若干数与x的异或值最大为多少? 这个东西处理出线...
  • u012288458
  • u012288458
  • 2016年05月18日 16:59
  • 563

[BZOJ4820] 硬币游戏 - 高斯消元

不会捉题选手的瞎口胡
  • whzzt
  • whzzt
  • 2017年04月13日 23:45
  • 953

Bzoj3270:博物馆:概率与期望,高斯消元

题目链接:博物馆 我们用id[i][j]代表一个人到了i另一个人在j的状态 假设id[i][j]代表的状态可以一步走到id[x][y]代表的状态,那么id[x][y]一步也可以走到id[i][j] 所...
  • qq_34025203
  • qq_34025203
  • 2016年06月13日 20:00
  • 554

[BZOJ]4689: Find the Outlier 高斯消元

高斯消元
  • baidu_36797646
  • baidu_36797646
  • 2017年07月27日 20:59
  • 220

BZOJ 2115 [Wc2011] Xor 高斯消元

BZOJ 2115 [Wc2011] Xor 高斯消元
  • wzq_QwQ
  • wzq_QwQ
  • 2015年07月18日 08:29
  • 1194

【高斯消元】【图论】[Wc2011][HYSBZ/BZOJ2155]Xor

题目大意找1到n的路径中异或和最大的路径。分析首先,我们考虑这样一个问题:先看另一道题N个点M条边的边带权的无向图,求一个回路使XOR和最大(回路中的路径可以走多次)。另一道题的分析有这样一个结论(从...
  • outer_form
  • outer_form
  • 2016年01月31日 16:39
  • 611

BZOJ 3143 (概率+高斯消元)

3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 959  Solved: 405 [Submit][Sta...
  • cymxyym
  • cymxyym
  • 2014年06月05日 19:40
  • 1070

解线性方程组——高斯消元の板子

zyf2000:你好棒棒呦~~~~ ATP:我的内心毫无波动
  • FromATP
  • FromATP
  • 2017年01月08日 07:50
  • 1979
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BZOJ 2115 DFS+高斯消元
举报原因:
原因补充:

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