Ba Gua Zhen HDU
来源:互联网 发布:数据库系统基础 pdf 编辑:程序博客网 时间:2024/05/09 23:44
题目链接点这里
大意:n个点,m条边的无向图,求一个回路的最大异或
,,一个回路可以分解为多个回路,总异或就是各个小回路异或和,因此我们可以先求出所有回路的异或值,然后求线性基,贪心取最大,即可
#include<cstdio>#include<cstring>#include<iostream>#include<math.h>#include<algorithm>#include<queue>using namespace std;#define MX 111111#define INF 0x3f3f3f3f#define mem(x,y) memset(x,y,sizeof(x))typedef unsigned long long ULL;int head[MX],cnt;int n,m;struct Edge { int to,nxt; ULL val;} E[2*MX];void edge_init() { mem(head,-1); cnt=0;}void edge_add(int a,int b,ULL c) { E[cnt].nxt=head[a]; E[cnt].to=b; E[cnt].val=c; head[a]=cnt++;}bool vis[MX];vector<ULL> arr;ULL p[64];ULL value[MX];void DFS(int u,int fa,ULL w) { for(int i=head[u]; ~i; i=E[i].nxt) { int v=E[i].to; if(v==fa)continue; if(vis[v]) arr.push_back(value[v]^w^E[i].val); else { vis[v]=1; DFS(v,u,value[v]=(w^E[i].val)); } }}int main() { freopen("input.txt","r",stdin); int cas; cin>>cas; int _=0; while(cas--) { cin>>n>>m; edge_init(); for(int i=1; i<=m; i++) { int u,v; ULL c; scanf("%d%d%I64u",&u,&v,&c); edge_add(u,v,c); edge_add(v,u,c); } arr.clear(); mem(vis,0); vis[1]=1; DFS(1,0,0); mem(p,0); for(int i=0; i<arr.size(); i++) { for(int j=63; j>=0; j--)if(arr[i]>>j) if(!p[j]) { p[j]=arr[i]; break; } else arr[i]^=p[j]; } ULL ans=0; for(int i=63; i>=0; i--) if((ans^p[i])>ans) ans^=p[i]; printf("Case #%d: %I64u\n",++_,ans); } return 0;}
0 0
- Ba Gua Zhen HDU
- hdu 5544 Ba Gua Zhen
- hdu 5544 Ba Gua Zhen
- [HDU] 5544 Ba Gua Zhen
- hdu 5544 Ba Gua Zhen(线性基+dfs)
- UESTC OJ1219 Ba Gua Zhen
- hdu5544 Ba Gua Zhen(高斯消元)
- HDU 5544 Ba Gua Zhen (dfs&独立回路&异或消元)
- HDU 5544 Ba Gua Zhen (DFS找环+线性基)
- hdu5544 - Ba Gua Zhen 按位贪心+xor性质
- 【HDU5544 2015CCPC 南阳国赛E】【树上dfs找本质不同环 高斯消元 时间戳优化】Ba Gua Zhen 连通图上最大异或环
- zhen
- Liang Zhen
- GO TO SHEN ZHEN
- SHEN ZHEN归来!
- BA Tools
- lun ba
- CUHK interview in Shen Zhen
- 功不唐捐【基础篇】——TCP/IP协议
- acm 训练2017 03 06
- Python学习笔记之Python基础(三)-输入
- 《ACM程序设计》书中题目B(“胖老鼠的语言”说好的建国后动物不许成精呢?)
- JavaScript高级程序设计笔记 (三)
- Ba Gua Zhen HDU
- TCP首部中的URG和PSH的区别和联系
- HTML调用Js文件
- 01-大鸭梨博客系统前期准备
- java从头开始学习到选择c++ (二)java概述(2)
- 排序算法(Java)
- BZOJ3060: [Poi2012]Tour de Byteotia
- rabbitmq学习之路(二)spring的集成方式
- NO SQL statement available错误解决方法