HDU 5883 欧拉回路
题面:
思路:
这里面有坑啊啊啊…..
先普及一下姿势:
判断无向图欧拉路的方法:
图连通,只有两个顶点是奇数度,其余都是偶数度的。判断无向图欧拉回路的方法:
图连通,所有顶点都是偶数度。
重点:图连通!!
思路:
先看看图是否联通(就是所有边都能经过么)
再判判是不是欧拉路
经过的次数=(du[i]+1)/2
如果是欧拉回路:枚举起点 再异或一下
不是:输出当前解
就酱~
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 1000050
int n,t,m,xx[N],yy[N],h[N],ans,du[N],flg;
int first[N],nxt[N],v[N],tot;
bool vis[N],V[N];
void add(int x,int y){v[tot]=y,nxt[tot]=first[x],first[x]=tot++;}
void dfs(int x){
for(int i=first[x];~i;i=nxt[i])if(!V[i])
vis[v[i]]=1,V[i]=V[i^1]=1,dfs(v[i]);
}
int main(){
scanf("%d",&t);
while(t--){
memset(first,-1,sizeof(first)),memset(vis,0,sizeof(vis));
memset(V,0,sizeof(V));
memset(du,0,sizeof(du)),flg=ans=tot=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&h[i]);
for(int i=1;i<=m;i++){
scanf("%d%d",&xx[i],&yy[i]);
du[xx[i]]++,du[yy[i]]++;
add(xx[i],yy[i]),add(yy[i],xx[i]);
}
dfs(xx[1]),vis[xx[1]]=1;
for(int i=0;i<tot;i++)if(!V[i])goto ed;
for(int i=1;i<=n;i++){
if(!vis[i])continue;
if(du[i]&1)flg++;
du[i]=(du[i]+1)/2;
if(du[i]&1)ans=ans^h[i];
}
if(flg==2)printf("%d\n",ans);
else if(!flg){
int answer=0;
for(int i=1;i<=n;i++)if(vis[i])
answer=max(answer,ans^h[i]);
printf("%d\n",answer);
}
else ed:puts("Impossible");
}
}
HDU 5883 欧拉回路的更多相关文章
- The Best Path HDU - 5883(欧拉回路 && 欧拉路径)
The Best Path Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- HDU 5883 F - The Best Path 欧拉通路 & 欧拉回路
给定一个图,要求选一个点作为起点,然后经过每条边一次,然后把访问过的点异或起来(访问一次就异或一次),然后求最大值. 首先为什么会有最大值这样的分类?就是因为你开始点选择不同,欧拉回路的结果不同,因为 ...
- HDU 5883 The Best Path (欧拉路或者欧拉回路)
题意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大. 析:由欧拉路性质,奇度点数量为0或2.一个节点被进一次出一次,度减2,产生一次贡献,因此节点 i 的贡献为 ...
- hdu 1116 欧拉回路+并查集
http://acm.hdu.edu.cn/showproblem.php?pid=1116 给你一些英文单词,判断所有单词能不能连成一串,类似成语接龙的意思.但是如果有多个重复的单词时,也必须满足这 ...
- HDU 1878 欧拉回路(判断欧拉回路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1878 题目大意:欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一 ...
- HDU 3018 欧拉回路
HDU - 3018 Ant Country consist of N towns.There are M roads connecting the towns. Ant Tony,together ...
- HDU 1878 欧拉回路
并查集水题. 一个图存在欧拉回路的判断条件: 无向图存在欧拉回路的充要条件 一个无向图存在欧拉回路,当且仅当该图所有顶点度数都是偶数且该图是连通图. 有向图存在欧拉回路的充要条件 一个有向图存在欧拉回 ...
- HDU 1878 欧拉回路 图论
解题报告:题目大意,给出一个无向图,判断图中是否存在欧拉回路. 判断一个无向图中是否有欧拉回路有一个充要条件,就是这个图中不存在奇度定点,然后还要判断的就是连通分支数是否为1,即这个图是不是连通的,这 ...
- 【刷题】HDU 5883 The Best Path
Problem Description Alice is planning her travel route in a beautiful valley. In this valley, there ...
随机推荐
- 收集整理的openstack java封装 api的第三方实现的选择
Apache jclouds 地址:http://jclouds.apache.org/guides/openstack/ 一个开源库,java实现,支持cloudstack,openstack以及各 ...
- 关于ValueAnimation以及Interpolator +Drawable实现的自己定义动画效果
ValueAnimation : Android中的属性动画,他跟objectAnimation是比补间动画拥有更强大的功能,能够操作对象.所以我们能够在自 定义View中通过他们来实现些特别的功能. ...
- 走进Java(一)J2SE
一.Java是什么 Java是Java语言和Java平台的总称.Java语言和C#一样.核心都是oo.并且比較而言,Java做的更好. Java由四方面组成: • Java编程语言,即 ...
- 蓝的成长记——追逐DBA(18):小机上WAS集群故障,由一次更换IP引起
原创作品.出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...
- spring揭秘 读书笔记 二 BeanFactory的对象注冊与依赖绑定
本文是王福强所著<<spring揭秘>>一书的读书笔记 我们前面就说过,Spring的IoC容器时一个IoC Service Provider,并且IoC Service Pr ...
- QTP11.5公布,改名UFT
QTP11.5公布,改名UFT,支持多脚本编辑调试.PDF检查点.持续集成系统.手机測试等 http://www.learnqtp.com/hp-uft11-5-qtp-new-features/ T ...
- ural 1143. Electric Path(凸包上最短哈密顿路径)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1143 题意:逆时针给一个凸包的n(n<=200)个顶点坐标,求一个最短哈密顿路径的 ...
- 3.IntelliJ IDEA 使用详解
转自:https://blog.csdn.net/wl_627292578/article/details/53796226 目录结构: InteliJ IDEA 没有工作空间的概念 project ...
- Where to Store your JWTs – Cookies vs HTML5 Web Storage--转
原文地址:https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage Update 5/12/20 ...
- java9新特性-12-集合工厂方法:快速创建只读集合
1.官方Feature 269: Convenience Factory Methods for Collections 2.产生背景 要创建一个只读.不可改变的集合,必须构造和分配它,然后添加元素, ...