HDU 5883 The Best Path 2016 ACM/ICPC Asia Regional Qingdao Online 1006d
来源:互联网 发布:linux mv 目录 编辑:程序博客网 时间:2024/06/17 02:27
判断一下是不是欧拉路径
#include<stdio.h>#include<iostream>#include<memory.h>#include<stdlib.h>#include<cstdio>#include<cstring>#include<queue>#include<set>#include<algorithm>using namespace std;const int MAXN = 100005;const int MAXM = 500005;const int INF = 0x3f3f3f3f;typedef long long LL;int T, N, M;int v[MAXN], cnt[MAXN];struct Edge{int b;int next;}edge[2 * MAXM];int len = 1;int head[MAXN];void AddEdge(int a, int b){edge[len].b = b;edge[len].next = head[a];head[a] = len++;edge[len].b = a;edge[len].next = head[b];head[b] = len++;cnt[a]++;cnt[b]++;}int flag[MAXN];int travelCnt = 0;void Travel(int st){travelCnt++;flag[st] = 1;int p = head[st];while (p){if (!flag[edge[p].b]){Travel(edge[p].b);}p = edge[p].next;}}int main(void) {#ifndef ONLINE_JUDGE//freopen("in.txt", "r", stdin);//freopen("out.txt", "w", stdout);#endifint T;scanf("%d", &T);{int i, j, k;int res;for (int ca = 1; ca <= T; ca++){scanf("%d%d", &N, &M);for (i = 1; i <= N; i++){scanf("%d", &v[i]);}memset(head, 0, (N + 1) * sizeof(int));memset(cnt, 0, (N + 1) * sizeof(int));len = 1;int a, b;for (i = 0; i < M; i++){scanf("%d%d", &a, &b);AddEdge(a, b);}int st[2], num = 0;bool impossible = false;for (i = 1; i <= N; i++){if (cnt[i] % 2){if (num >= 2){impossible = true;break;}st[num++] = i;}}if (1 == num){impossible = true;}else if (0 == num){st[0] = 1;}if (!impossible){travelCnt = 0;memset(flag, 0, (N + 1) * sizeof(int));Travel(st[0]);if (travelCnt != N){impossible = true;}}if (!impossible){res = 0;for (i = 1; i <= N; i++){if (cnt[i] % 2){res ^= (((cnt[i] / 2) + 1) % 2 * v[i]);}else{res ^= ((cnt[i] / 2) % 2 * v[i]);}}if (0 == num){int max = 0;for (i = 1; i <= N; i++){if ((res ^ v[i]) > max){max = (res ^ v[i]);}}res = max;}}if (impossible){printf("Impossible\n");}else{printf("%d\n", res);}}}return 0;}
0 0
- HDU 5883 The Best Path 2016 ACM/ICPC Asia Regional Qingdao Online 1006d
- HDU 5883 The Best Path 2016 ACM/ICPC Asia Regional Qingdao Online
- HDU 5883 The Best Path (欧拉通路) 2016 ACM/ICPC Asia Regional Qingdao Online
- HDU 5883 The Best Path(2016 ACM/ICPC Asia Regional Qingdao Online)
- HDU 5883 The Best Path(并查集+欧拉回路 or 欧拉路)——2016 ACM/ICPC Asia Regional Qingdao Online
- 欧拉路——HDU 5883 (2016 ACM/ICPC Asia Regional Qingdao Online 1006)
- HDU 5879 Cure 2016 ACM/ICPC Asia Regional Qingdao Online
- HDU 5884 Sort 2016 ACM/ICPC Asia Regional Qingdao Online
- HDU 5878 -- 丑数打表(2016 ACM/ICPC Asia Regional Qingdao Online)
- HDU 5878 -- 丑数打表(2016 ACM/ICPC Asia Regional Qingdao Online)
- 【2016 ACM/ICPC Asia Regional Qingdao Online】
- 2016 ACM/ICPC Asia Regional Qingdao Online
- 2016 ACM/ICPC Asia Regional Qingdao Online
- HDu 6216 && 2017 ACM/ICPC Asia Regional Qingdao Online 1011
- HDU-2017 ACM/ICPC Asia Regional Qingdao Online-1001-Apple
- HDU-2017 ACM/ICPC Asia Regional Qingdao Online-补题
- 2017 ACM/ICPC Asia Regional Qingdao Online
- 2017 ACM/ICPC Asia Regional Qingdao Online
- poj2411 Corn Fields(状态压缩)
- java web 学习指南【1】
- HDU 5882 Balanced Game 2016 ACM/ICPC Asia Regional Qingdao Online 1005
- C#之WinForm基础 timer模拟循环跑马灯
- 初用CSDN
- HDU 5883 The Best Path 2016 ACM/ICPC Asia Regional Qingdao Online 1006d
- C#之WinForm基础 多组单选按钮共存
- 赛码:字符判断
- C#之WinForm基础 清空文本框与将光标移动到指定文本框
- 面试题:快速计算1亿内所有整数的最大奇因数和
- C#之WinForm基础 设置某一个窗体为MDI的父窗体
- Linux知识
- React Native调试心得
- Linux下opencv的安装及运行