UESTC OJ1219 Ba Gua Zhen
链接:http://mozhu.today/#/problem/show/1219
题意:给定n个点m条边有边权的无向图,求一个异或值最大的回路。
分析:其实就是将所有环的异或值找出来然后任选一些组成最大的异或值。从k个数中任选一些求最大的异或值在莫涛的高斯消元解XOR方程组里面讲得很清楚。
代码:
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<bitset>
#include<math.h>
#include<vector>
#include<string>
#include<stdio.h>
#include<cstring>
#include<iostream>
#include<algorithm>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
const int N=50010;
const int mod=100000000;
const int MOD1=1000000007;
const int MOD2=1000000009;
const double EPS=0.00000001;
typedef long long ll;
const ll MOD=1000000007;
const int MAX=1000000010;
const ll INF=1ll<<55;
const double pi=acos(-1.0);
typedef double db;
typedef unsigned long long ull;
int tot,q[N],u[N],v[4*N],pre[4*N];
ll xo[N],d[4*N],w[4*N];
void add(int a,int b,ll c) {v[tot]=b;w[tot]=c;pre[tot]=u[a];u[a]=tot++;
}
void dfs(int x,int f,ll c) {if (q[x]) {d[++tot]=c^xo[x];return ;}q[x]=1;xo[x]=c;for (int i=u[x];i!=-1;i=pre[i])if (v[i]==f) continue ;else dfs(v[i],x,c^w[i]);
}
int main()
{int a,b,i,j,k,n,m,t,ca;ll c,ans;scanf("%d", &t);for (ca=1;ca<=t;ca++) {scanf("%d%d", &n, &m);tot=0;memset(u,-1,sizeof(u));for (i=1;i<=m;i++) {scanf("%d%d%lld", &a, &b, &c);add(a,b,c);add(b,a,c);}memset(q,0,sizeof(q));tot=0;ans=0;dfs(1,-1,0);for (i=60,k=1;i>=0;i--) {for (j=k;j<=tot;j++)if ((d[j]&(1ll<<i))!=0) break ;if (j==tot+1) continue ;if (j!=k) swap(d[k],d[j]);for (j=k+1;j<=tot;j++)if ((d[j]&(1ll<<i))!=0) d[j]^=d[k];k++;}for (i=1;i<k;i++) ans=max(ans,ans^d[i]);printf("Case #%d: %lld\n", ca, ans);}return 0;
}
UESTC OJ1219 Ba Gua Zhen相关推荐
- Ba Gua Zhen
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5544 学习链接:https://www.cnblogs.com/qscqesze/p/4902518. ...
- 2015南阳CCPC E - Ba Gua Zhen 高斯消元 xor最大
Ba Gua Zhen Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description During the Three-Kingdom perio ...
- hdu5544 Ba Gua Zhen(高斯消元)
思路:首先DFS把图上的所有环找出来,然后就是K个数里面任意选数使得异或和最大,高斯消元就好了 异或方程的高斯消元见 点击打开链接 #include<bits/stdc++.h> usin ...
- hdu 5544 Ba Gua Zhen
link 因为在沈阳站的比赛中我们没有做出来H题,后来才知道是高斯消元.于是我先来补一下高斯消元的题目.先做了hdu XOR对线性基有了一定的了解,然后来做一下南阳ccpc的Ba Gua Zhen 分 ...
- hdu 5544 Ba Gua Zhen(线性基+dfs)
题意: 一个无向图,每条边有值,找出无向图中所有的环的异或和,问这些值能异或出来的最大值. 解题思路: 去年的做的比赛里的题,今年才补上. 找环用dfs跑一遍图就可以找出来了,然后求最大的异或和,这是 ...
- HDU 5544 Ba Gua Zhen (dfs独立回路异或消元)
这道题和BZOJ 2115 基本一样,容易一点,直接存个代码:这个代码要好看一点(好像并没有什么区别...) #include <bits/stdc++.h> #define LL lon ...
- [HDU] 5544 Ba Gua Zhen
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5544 题目大意:T组数据, 给一个n个点, m条边的无向连通图, 无自环, 无重边, 求最大XOR回 ...
- HDU 5544 Ba Gua Zhen ( 2015 CCPC 南阳 C、DFS+时间戳搜独立回路、线性基 )
题目链接 题意 : 给出一副简单图.要你找出一个回路.使得其路径上边权的异或和最大 分析 : 类似的题有 BZOJ 2115 对于这种异或最长路的题目(走过的边可以重复走) 答案必定是由一条简单路径( ...
- centos7php自启动,CentOS7.X中设置nginx和php-fpm的开机自启动
一.设置nginx的开机自启动方法 1.在/etc/init.d/目录下创建nginx文件 vi /etc/init.d/nginx 编写内容如下: #!/bin/sh # # nginx - thi ...
最新文章
- R语言中使用pkgbuild::find_rtools查看是否有Rtools、使用Sys.which函数查看make是否存在、如果没有则安装、使用writeLines函数绑定R和Rtools
- Mysql 生成不重复的随机数字
- [bug]超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。...
- 安装Zabbix过程中出现的问题集
- mysql join 组合索引_详解MySQL两表关联的连接表创建单列索引还是组合索引最优...
- 2021云栖大会丨首批阿里云计算巢认证合作伙伴获得授牌,阿里云与合作伙伴共筑云上生态
- USB口的红外条形码扫描器的另类使用
- 转行算法,90%的人还没开始就错在了这1步
- position小结
- 京东搜索排序在线学习的 Flink 优化实践
- SVN可视化管理工具
- mac抓包工具charles破解版安装及简单使用
- TYPE g_date_tbl_typ IS TABLE OF DATE INDEX BY VARCHAR2(1000);
- Rockchip | 固件分区排列
- Virtualbox加载虚拟机镜像
- HDOJ 6078-Wavel Sequence
- vue项目中使用@babel/plugin-proposal-optional-chaining的?.语法,防止字段没有报错
- JS实现简单的登录注册页签
- vue 子组件调用($emit)父组件方法后父组件方法如何回调子组件方法
- python自动生成统计表_python处理Excel自动统计表
热门文章
- 包子凑数-蓝桥杯真题 线性方程组求解(c++实现)
- MATLAB在app中扫描串口并在下拉菜单中显示
- 《统计学习导论:基于R应用》第2章课后习题参考答案
- Python 获取视频fps工具(附代码) | Python工具
- manjaro卸载docker
- 如何做好数据治理平台
- 《Activiti/Flowable 深入BPM工作流》-流程部署实现方式二
- 【STM32H7教程】第92章 STM32H7的FDCAN总线应用之双FDCAN实现(支持经典CAN)
- js实现简单聊天页面,图片随机名字随机
- 计算机好听歌曲,【跟风推荐】自己电脑里和手机里的好听歌曲