图(无向图或有向图)中恰好通过所有边一次且经过所有顶点的的通路成为欧拉通路,图中恰好通过所有边一次且经过所有顶点的回路称为欧拉回路,具有欧拉回路的图称为欧拉图,具有欧拉通路而无欧拉回路的图称为半欧拉图。

  规定平凡图(只有一个点)是欧拉图。

性质与定理:

  1. 无向图G是欧拉图当且仅当G是连通的且没有奇度顶点。
  2. 无向图G是半欧拉图当且仅当G是连通的且恰有两个奇度顶点。
  3. 有向图D是欧拉图当且仅当D是强连通的且每个顶点恰有两个奇度顶点。
  4. 有向图D是半欧拉图当且仅当D是单连通的且每个顶点入度等于出度。

显然,该题为求一条欧拉回路或欧拉通路,并求权值异或最大值,我们知道偶数次异或运算结果为0,通过点的度数,我们不难判断出该点参与异或运算的次数,度数为n的点在欧拉回路起始位置被运算的次数为(n + 1)/ 2 + 1,其他情况运算次数为(n + 1) / 2

题目:题目链接

AC代码:

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std; const int maxn = + ; int n, m, ans;
int w[maxn], num[maxn]; bool solve(); int main()
{
//freopen("in.txt", "r", stdin);
ios::sync_with_stdio();
cin.tie(); int T, u, v;
cin >> T;
while(T--) {
cin >> n >> m;
for(int i = ; i <= n; ++i) {
cin >> w[i];
num[i] = ;
}
for(int i = ; i < m; ++i) {
cin >> u >> v;
++num[u];
++num[v];
}
if(solve())
cout << ans << endl;
else
cout << "Impossible" << endl;
}
return ;
} bool solve() {
int sum = ;
for(int i = ; i <= n; ++i)
if(num[i] & )
++sum;
if(sum != && sum != )
return false;
int temp = ;
for(int i = ; i <= n; ++i)
if((num[i] + ) >> & )
temp ^= w[i];
if(sum == )
ans = temp;
else {
ans = ;
for(int i = ; i <= n; ++i)
ans = max(ans, temp ^ w[i]);
}
return true;
}

The Best Path HDU - 5883 欧拉通路的更多相关文章

  1. Play on Words HDU - 1116 (并查集 + 欧拉通路)

    Play on Words HDU - 1116 Some of the secret doors contain a very interesting word puzzle. The team o ...

  2. hdu 1116 Play on Words(欧拉通路)

    Problem Description Some of the secret doors contain a very interesting word puzzle. The team of arc ...

  3. PAT (Advanced Level) 1124~1127:1124模拟 1125优先队列 1126欧拉通路 1127中序后序求Z字形层序遍历

    1124 Raffle for Weibo Followers(20 分) 题意:微博抽奖,有M个人,标号为1~M.从第S个人开始,每N个人可以获奖,但是已获奖的人不能重复获奖,需要跳过该人把机会留给 ...

  4. FZU 2112 并查集、欧拉通路

    原题:http://acm.fzu.edu.cn/problem.php?pid=2112 首先是,票上没有提到的点是不需要去的. 然后我们先考虑这个图有几个连通分量,我们可以用一个并查集来维护,假设 ...

  5. POJ 2337 Catenyms(有向图的欧拉通路)

    题意:给n个字符串(3<=n<=1000),当字符串str[i]的尾字符与str[j]的首字符一样时,可用dot连接.判断用所有字符串一次且仅一次,连接成一串.若可以,输出答案的最小字典序 ...

  6. POJ 1780 Code(有向图的欧拉通路)

    输入n(1<=n<=6),输出长度为10^n + n -1 的字符串答案. 其中,字符串以每n个为一组,使得所有组都互不相同,且输出的字符串要求字典序最小. 显然a[01...(n-1)] ...

  7. HDU1116 Play on Words(有向图欧拉通路)

    我把单词当作点,然后这样其实是不对的,这样就要判定是否是哈密顿通路.. 这题应该把单词的首尾单词当作点,而单词本身就是边,那样就是判定欧拉通路了. 有向图包含欧拉通路的充要条件是:首先基图连通,然后是 ...

  8. 欧拉通路-Play on Words 分类: POJ 图论 2015-08-06 19:13 4人阅读 评论(0) 收藏

    Play on Words Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10620 Accepted: 3602 Descri ...

  9. POJ 2513 Colored Sticks (离散化+并查集+欧拉通路)

    下面两个写得很清楚了,就不在赘述. http://blog.sina.com.cn/s/blog_5cd4cccf0100apd1.htmlhttp://www.cnblogs.com/lyy2890 ...

随机推荐

  1. java课后思考问题(八)

    1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. (1)import javax.swing.*; class AboutEx ...

  2. HDU 5875 H - Function 用单调栈水过了

    http://acm.hdu.edu.cn/showproblem.php?pid=5875 单调栈,预处理to[i]表示第一个比a[i]小的数字,一直跳就可以. 这题是数据水而已. 这里学习下单调栈 ...

  3. 再谈WPF

    前几天初步看了一下WPF,按照网上说的一些方法,实现了WPF所谓的效果.但,今天我按照自己的思路设计了一个登陆界面,然后进行登陆验证,对WPF算是有进一步的理解,记录下来,以备后期查看. 首先,在WP ...

  4. 实例——省市区三级联动 & 还可以输入字符统计

    1 省市区三级联动 html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  5. HTML5 JSDOM

    1,HTML5 新语义化标签 - nav -- 表示导航 - header -- 表示页眉 -- 头部 - section -- 表示区块 -- 类似于div - main -- 文档主要内容 - a ...

  6. eclipse中安装lombok插件

    一:下载lombok 下载地址:https://projectlombok.org/downloads/lombok.jar 或者访问官网下载  https://projectlombok.org/ ...

  7. VC中包含的头文件名不区分大小写

    VC中包含的头文件名,不区分大小写如 #include "my.h" = #include "MY.H".

  8. vmware 虚机NAT模式,局域网可访问

    本地VMware虚拟机,网络模式为NAT,现在需要局域网其他电脑通过ssh连接这台VMware虚拟机 宿主机地址:192.168.3.26 VMware虚拟机地址:192.168.239.137 局域 ...

  9. hdu 5093 Battle ships (二分图)

    二分图最大匹配问题 遇到冰山就把行列拆成两个部分.每个部分x也好,y也好只能匹配一次 图画得比较草,将就着看 横着扫一遍,竖着扫一遍,得到编号 一个位置就对应一个(xi,yi)就是X集到Y集的一条边, ...

  10. groff - groff 文档排版系统前端

    总览 (SYNOPSIS) groff [ -abehilpstvzCENRSUVXZ ] [ -wname ] [ -Wname ] [ -mname ] [ -Fdir ] [ -Idir ] [ ...