题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2115

题意:求图中路径1~n上最大边权 xor 和

思路:参见 blog http://blog.csdn.net/qwb492859377/article/details/52939589

代码:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#define ll long long
using namespace std; const int MAXN = 5e5 + ;
const int inf = 0x3f3f3f3f; struct Edge {
ll val;
int v, nxt;
} E[MAXN * ]; int head[MAXN], id; void edge_init() {
id = ;
memset(head, -, sizeof(head));
} void edge_add(int u, int v, ll val) {
E[id].v = v;
E[id].val = val;
E[id].nxt = head[u];
head[u] = id++;
} int n, m, sz;
ll A[MAXN], P[], dis[MAXN]; void Guass_base(void) {
memset(P, , sizeof(P));
for(int i = ; i <= sz; i++) {
for(int j = ; j >= ; j--) {
if(!(A[i] >> j & )) continue;
if(!P[j]) {
P[j] = A[i]; break;
}
A[i] ^= P[j];
}
}
} void DFS(int u, ll s) {
if(dis[u] == -) dis[u] = s;
else {
A[++sz] = s ^ dis[u];
return;
}
for(int i = head[u]; ~i; i = E[i].nxt) {
int v = E[i].v;
DFS(v, s ^ E[i].val);
}
} int main(void) {
while(~scanf("%d%d", &n, &m)) {
sz = ;
edge_init();
memset(dis, -, sizeof(dis));
for(int i = ; i <= m; i++) {
int u, v;
ll val;
scanf("%d%d%lld", &u, &v, &val);
edge_add(u, v, val);
edge_add(v, u, val);
}
DFS(, );
Guass_base();
ll ans = dis[n];
for(int i = ; i >= ; i--) {
ans = max(ans, ans ^ P[i]);
}
printf("%lld\n", ans);
}
return ;
}

bzoj2115(线性基)的更多相关文章

  1. 【BZOJ2115】Xor(线性基)

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

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

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

  3. 【BZOJ-2115】Xor 线性基 + DFS

    2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2142  Solved: 893[Submit][Status] ...

  4. BZOJ2115:[WC2011] Xor(线性基)

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...

  5. BZOJ2115 [Wc2011] Xor 【线性基】

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

  6. 【bzoj2115】[Wc2011] Xor DFS树+高斯消元求线性基

    题目描述 输入 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图 ...

  7. bzoj2115 [Wc2011] Xor——高斯消元 & 异或线性基

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2115 异或两次同一段路径的权值,就相当于没有走这段路径: 由此可以得到启发,对于不同的走法, ...

  8. 洛谷.3733.[HAOI2017]八纵八横(线性基 线段树分治 bitset)

    LOJ 洛谷 最基本的思路同BZOJ2115 Xor,将图中所有环的异或和插入线性基,求一下线性基中数的异或最大值. 用bitset优化一下,暴力的复杂度是\(O(\frac{qmL^2}{w})\) ...

  9. BZOJ2322 [BeiJing2011]梦想封印 【set + 线性基】

    题目链接 BZOJ2322 题解 鉴于BZOJ2115,要完成此题,就简单得多了 对图做一遍\(dfs\),形成\(dfs\)树,从根到每个点的路径形成一个权值,而每个返祖边形成一个环 我们从根出发去 ...

随机推荐

  1. springboot成神之——spring文件下载功能

    本文介绍spring文件下载功能 目录结构 DemoApplication WebConfig TestController MediaTypeUtils 前端测试 本文介绍spring文件下载功能 ...

  2. 去掉字符串中的html标签

    public static string removeHtml(string html) { System.Text.RegularExpressions.Regex regex1 = new Sys ...

  3. leetcode695

    public class Solution { public int MaxAreaOfIsland(int[,] grid) { ); ); bool[,] Visited = new bool[r ...

  4. BurpSuite系列(十一)----Project options模块(项目选择)

    一.简介 Project options主要用来对Project的一些设置. 二.模块说明 Project options主要由五个模块组成: 1.Connections 连接2.HTTP3.SSL4 ...

  5. Spring Data系列之Jpa(一)

    1.Spring Data的由来 Spring Data是SpringSource基金会创下的一个简化数据库访问.支持云服务的开源框架.其主要目的是让数据库访问变的方便快捷,可以用Spring Dat ...

  6. (三)maven出错记录

    此处因为是自己做的所以文笔带过,简单描述下 1\首先是jsp页面报错,缺少必要的servletx依赖jar包,需要在pom中配置 <dependency><groupId>ja ...

  7. CURL以 POST 请求链接的方式 初始化一个cURL会话来获取一个网页

    /** *POST URL */ function posturl($URL,$data) { $ch = curl_init(); // 创建一个新cURL资源 curl_setopt($ch,CU ...

  8. fopencookie函数详解

    今天看DPDK时,看到了fopencookie函数,以前基本没有用过该函数,乘此机会好好看看如何使用. 1. 函数头文件与函数原型 函数头文件: #include <stdio.h> 函数 ...

  9. ShopNc登录验证码

  10. lnmp+laravel部署到服务器出现 "GET / HTTP/1.1" 500 5

    lnmp一键安装包直接下载安装,就可以了,在此不多说. 虚拟机配置给个参考(lnmp安装包) server { listen 80; #listen [::]:80; server_name www. ...