HDU 5883 The Best Path [欧拉图]
来源:互联网 发布:网络六六六什么意思 编辑:程序博客网 时间:2024/05/23 11:27
Description
给你一个图
每条边都只能走一次,而且必须走
每个点有个权值
最后算经过路径的点的XOR
Algorithm
数据比较水
源代码找不到了
于是自己又写了一个了
这个明显有不行的情况
比如说两个三角形
应该是Impossible
不过这个拿求是否联通,并查集和DFS都可以做了,再议
现在说下这个怎么做
3种情况
奇数点个数 > 2
不能一笔画 Impossible
全是偶数点
这样可以从任意起点开始
都能一笔画
然后每个点经过多少次呢?
如果不算作为起点
那是
边数 / 2 次
边数 / 2 是 奇数 就算上 否则XOR抵消了
这样再枚举起点就可以找到ANS
两个奇数点
这两个奇数点经过次数是多少?
如果 % 3 == 0 是不算的
比如说
A->C->B->D->C
A点算1次
C点算2次 相当于不算
这大概就是公式一样的存在吧
Code
#include <iostream>#include <cstdio>using namespace std;const int MAXN = 100000;int g[MAXN]; //g[i]表示与i相连的边数int a[MAXN];void solve(){ int n, m; scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); g[i] = 0; } for (int i = 0; i < m; i++) { int u, v; scanf("%d%d", &u, &v); u--; v--; g[u]++; g[v]++; } int ods = 0; //奇点数 int xors = 0; for (int i = 0; i < n; i++) { if (g[i] % 2) { ods++; if (g[i] % 3) { xors ^= a[i]; } } else { if (g[i] % 4) { xors ^= a[i]; } } } if (ods > 2) { puts("Impossible"); return; } if (ods == 2) { printf("%d\n", xors); return; } int ans = 0; for (int i = 0; i < n; i++) { ans = max(ans, xors ^ a[i]); } printf("%d\n", ans);}int main(){ //freopen("in.txt", "r", stdin); int t; scanf("%d", &t); while (t--) { solve(); }}
0 0
- HDU 5883 The Best Path [欧拉图]
- HDU 5883 The Best Path 欧拉图
- hdu 5883 The Best Path
- HDU 5883 - The Best Path
- HDU-5883-The Best Path
- hdu 5883 The Best Path
- The Best Path ----HDU
- 【23.59%】【hdu 5883】The Best Path
- 5883-The Best Path
- HDU 5883 The Best Path 2016青岛网赛
- 青岛网赛 1006 HDU 5883 The Best Path
- hdu 5883 The Best Path-ICPC网络赛青岛赛区
- HDU 5883 The Best Path (枚举 欧拉通路)
- 【HDU 5883】The Best Path(欧拉路+异或和)
- hdu 5883 The Best Path 欧拉路 异或
- HDU 5883 The Best Path(欧拉路径\回路)
- hdu 5883 The Best Path 欧拉路径(回路)
- HDU-5883-The Best Path【2016青岛网络】【欧拉路】
- 关于LeetCode中Merge Sorted Array一题的理解
- 二分法查找位置
- 第三周项目四顺序表应用
- 流技术小结
- Unity+Vuforia SDKAR开发系列教程--2.2.1Unity开发引擎介绍
- HDU 5883 The Best Path [欧拉图]
- SpringMVC使用(3) 异常处理
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android中将xml布局文件转换为View树的过程分析(下)-- LayoutInflater源码分析 - xiaoweiz
- UIWebView的数据缓存
- 转载一篇Java泛型继承和多态的问题,学习之!
- Linux 开发 | 学习 Makefile
- document.body和document.documentElement比较
- sql用法小结