Tourists in Mancunia

找欧拉回路。

$wiki$中说

连通的无向图 有欧拉路径的充要条件是:中奇顶点(连接的边数量为奇数的顶点)的数目等于0或者2。

连通的无向图 是欧拉环(存在欧拉回路)的充要条件是:中每个顶点的度都是偶数。

算法的实现:咱删除每条经过的边就行了。

 1 #include<bitset>
 2 #include<set>
 3 #include<cstdio>
 4 #include<vector>
 5 #include<iostream>
 6 #define pb push_back
 7 using namespace std;
 8 inline char nc() {
 9     return getchar();
10     static char b[1<<16],*s=b,*t=b;
11     return s==t&&(t=(s=b)+fread(b,1,1<<16,stdin),s==t)?-1:*s++;
12 }
13 inline void read(int &x) {
14     char b = nc(); x = 0;
15     for (; !isdigit(b); b = nc());
16     for (; isdigit(b); b = nc()) x = x * 10 + b - '0';
17 }
18 const int N = 100010;
19 int n, m, in[N], ecnt, fa[N];
20 struct Edge {
21     int u, v;
22 } E[200010];
23 set < int > g[N];
24 int find(int x) {
25     return fa[x] == x ? x : fa[x] = find(fa[x]);
26 }
27 void merge(int a, int b) {
28     if ((a = find(a)) != (b = find(b))) fa[b] = a;
29 }
30 void dfs(int u) {
31     while (!g[u].empty()) {
32         int e = *g[u].begin();
33         if (E[e].u != u) swap(E[e].u, E[e].v);
34         int v = E[e].v;
35         g[u].erase(e); g[v].erase(e);
36         dfs(v);
37     }
38 }
39 int main() {
40     read(n); read(m);
41     for (int i = 1; i <= n; ++i) fa[i] = i;
42     for (int u, v, i = 0; i < m; ++i) {
43         read(u), read(v);
44         E[i] = (Edge){u, v};
45         g[u].insert(i);
46         g[v].insert(i);
47         ++in[u]; ++in[v];
48         merge(u, v);
49     }
50     for (int i = 1; i <= n; ++i)
51         if ((in[i] & 1) || find(i) != find(1))
52             return puts("NO"), 0;
53     dfs(1); puts("YES");
54     for (int i = 0; i < m; ++i)
55         printf("%d %d\n", E[i].u, E[i].v);
56     return 0;
57 }

转载于:https://www.cnblogs.com/p0ny/p/8196301.html

[codechef] TOURISTS相关推荐

  1. codechef ANUCBC(背包)

    题目链接: https://www.codechef.com/problems/ANUCBC 按模数进行背包 取模不要直接取,分开写,不然会T #include<cstdio> #incl ...

  2. CodeChef CBAL

    题面: https://www.codechef.com/problems/CBAL 题解: 可以发现,我们关心的仅仅是每个字符出现次数的奇偶性,而且字符集大小仅有 26, 所以我们状态压缩,记 a[ ...

  3. CFCC百套计划2 CodeChef December Challenge 2017 Chef And Easy Xor Queries

    https://www.codechef.com/DEC17/problems/CHEFEXQ 题意: 位置i的数改为k 询问区间[1,i]内有多少个前缀的异或和为k 分块 sum[i][j] 表示第 ...

  4. codechef INSQ15_A(hash+二分)

    思路:首先计算字符串s的所有后缀的hash值,然后根据p分离的两个字符串的最长公共子串,使用二分查找.具体代码参考: https://github.com/wuli2496/OJ/blob/maste ...

  5. CodeChef Cards, bags and coins [DP 泛型背包]

    https://www.codechef.com/problems/ANUCBC n个数字,选出其一个子集. 求有多少子集满足其中数字之和是m的倍数.n $\le$ 100000,m $\le$ 10 ...

  6. Codechef SEAARC Sereja and Arcs (分块、组合计数)

    我现在真的什么都不会了呢...... 题目链接: https://www.codechef.com/problems/SEAARC 好吧,这题其实考察的是枚举的功力-- 题目要求的是\(ABAB\)的 ...

  7. Codechef SEAARC Sereja and Arcs (分块)

    我现在真的什么都不会了呢...... 题目链接: https://www.codechef.com/problems/SEAARC 好吧,这题其实考察的是枚举的功力-- 题目要求的是\(ABAB\)的 ...

  8. Codechef TRIPS Children Trips (分块、倍增)

    题目链接: https://www.codechef.com/problems/TRIPS 感觉CC有点毒瘤啊.. 题解: 首先有一个性质可能是因为太傻所以网上没人解释,然而我看了半天: 就是正序和倒 ...

  9. CodeChef March Lunchtime 2018 div2

    地址https://www.codechef.com/LTIME58B?order=desc&sortBy=successful_submissions 简单做了一下,前三题比较水,第四题应该 ...

  10. [Bzoj4260]Codechef REBXOR(trie树)

    4260: Codechef REBXOR Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1534  Solved: 669 [Submit][St ...

最新文章

  1. C#的网络适配器操作
  2. linux之文件基本操作学习笔记
  3. zipparameters 使用_JAVA利用Zip4j解压缩【转】
  4. 【LeetCode】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化
  5. (转)Three challenges you’re going to face when building a chatbot
  6. 猫猫学iOS之小知识之xcode6自己主动提示图片插件 KSImageNamed的安装
  7. Caffe学习:Data
  8. word中插入代码_如何在Word中优雅的插入公式
  9. 谷梁科技多元化一卡通系统应用
  10. 笔记本vmware利用无线网卡上网设置
  11. 安科瑞DTSD/ADL400通讯协议说明-Susie 周
  12. 中国最小黑客:为不做作业 黑掉学校系统
  13. TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)
  14. 人人都能写游戏系列(三)Unity 3D平衡球游戏
  15. 魅族 刷机android 6.0,乐视X800+安卓6.0.1 魅族Flyme6刷机包 最新6.7.12.29R版 紫火20180510更新...
  16. 抖音橱窗or抖音小店?这3点,新手开店必看!
  17. mixer: 一个用go实现的mysql proxy
  18. 使用HTML+CSS制作一个简单的网页
  19. Kotlin协变和逆变
  20. 再谈深度学习文本的表示

热门文章

  1. 人可以活得更用力一些
  2. mybatis 中between and用法
  3. 转:教人找电影的攻略
  4. Typora 语法结构与功能
  5. 解决gitee/github上传图片数量受限
  6. Linux TCP之sack(二)
  7. Swagger Error Missing required property: responses ✖ Swagger Error Additional properties not allowe
  8. 互联网之于人类社会进化的意义
  9. 【rzxt】巧用电池小工具 电量问题全掌握
  10. 开放阿里云指定端口及设置本地代理访问自己的阿里云服务器