题目大意
将无向图转为有向图,并且出度等于入度的点的数目最大。无重复边有孤立点
题解
将度数为奇数的点连接 跑欧拉回路 将 原来的边输出

#include <iostream>
#include <cstdio>
#include <string.h>
#include <cmath>
#include <vector>
using namespace std;
const int maxn=205;
struct Edge{int u,v,len,nex;
};
Edge edge[205*205];
int head[205],deg[205];
int cnt,m,n;
bool vis[205],vis_edge[205*205];
void add(int u,int v,int w)///链式前向星
{edge[cnt].u=u;edge[cnt].v=v;edge[cnt].len=w;edge[cnt].nex=head[u];head[u]=cnt++;
}
vector<int>odd;
void euler(int u)
{vis[u]=1;for(int i = head[u]; ~i; i=edge[i].nex) {if(vis_edge[i|1]) continue;vis_edge[i|1]=1;if(edge[i].len) printf("%d %d\n",u,edge[i].v);euler(edge[i].v);}
}
int main()
{int t;cin.tie(0);ios::sync_with_stdio(0);cin>>t;while(t--){cnt=0;odd.clear();memset(vis,0,sizeof vis);memset(head,-1,sizeof head);memset(vis_edge,0,sizeof vis_edge);memset(deg,0,sizeof deg);cin>>n>>m;for(int i = 0; i < m; ++i) {int u,v;cin>>u>>v;add(u,v,1);add(v,u,1);deg[u]++;deg[v]++;}int ans=0;for(int i = 1; i <= n; ++i) {if(deg[i]&1) odd.push_back(i);else ans++;}printf("%d\n",ans);int l=odd.size();for(int i = 0; i < l; i+=2) {add(odd[i],odd[i+1],0);add(odd[i+1],odd[i],0);}for(int i = 1; i <= n; ++i) {if(!vis[i]) euler(i);}}return 0;
}

CF723E 欧拉回路相关推荐

  1. CF723E. One-Way Reform(欧拉回路)

    题目链接:https://codeforces.ml/contest/723/problem/E 描述: 给出一个无向图,确定边的方向,是入度等于出度的点最多. 分析: 有一个重要的定理:一个无向图度 ...

  2. CF723E(欧拉回路)

    题意: 给出一个有向图,要求给每条边重定向,使得定向后出度等于入度的点最多,输出答案和任意一种方案. 分析: 将图看作无向图,对每条边重定向 首先我们肯定分成多个连通分量来考虑,每一个连通分量都是一个 ...

  3. [模板][持续更新]欧拉回路与欧拉路径浅析

    Luogu P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与 ...

  4. uoj 117 欧拉回路

    1.判断是否为欧拉存在欧拉回路---裸的判断 欧拉回路就是看一笔能不能把途中所有的边跑完没得重复 对于无向边----建立双向边判断每个点的入度是否为2的倍数   1.1 对于有向边---建立单向边判断 ...

  5. 图论--欧拉路,欧拉回路(小结)

    在题目中在慢慢细说概念 1.HDU - 3018 Ant Trip 题目大意:又N个村庄,M条道路.问须要走几次才干将全部的路遍历 解题思路:这题问的是有关欧拉路的判定 欧拉路就是每条边仅仅能走一次, ...

  6. hdu 1878 欧拉回路

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  7. poj1386(判断一个有向图是否存在欧拉回路)

    1.欧拉回路:定义:经过图(有向图或无向图)中每条边一次且仅一次并且行遍图中每个顶点的回路( 闭合的欧拉路径,即一个环,保证每条边都通过且仅通过一次). 2.问题2:判断一个图是否有欧拉路径: (1) ...

  8. HDU1878(判断一个无向图是否存在欧拉回路)

    1.欧拉回路:定义:经过图(有向图或无向图)中每条边一次且仅一次并且行遍图中每个顶点的回路( 闭合的欧拉路径,即一个环,保证每条边都通过且仅通过一次). 2.问题1:判断一个无向图是否有欧拉回路的充要 ...

  9. luogu P1341 无序字母对(欧拉回路应用、模板)

    整理的算法模板合集: ACM模板 目录 输出n+1个字母,使得n个字母对都在这个字符串中出现,因为是n+1个字母,所以我们可以看出来其实就是一个欧拉路径,因为字母对可以替换顺序,所以我们将每个字母对都 ...

最新文章

  1. java实现七日股票问题_七日打卡--JAVA资源限制
  2. 【React 实战教程】从0到1 构建 github star管理工具
  3. RF设计天线 PI型匹配layout注意事项–物联网设计小技巧
  4. 一道笔试题(vue,react)
  5. [Bugku CTF——Pwn] pwn1
  6. Laravel 用户认证与登陆
  7. 关于js 中call()和 apply()方法的解释
  8. Hybris PriceRow的存储定义
  9. C#正则表达式编程(四)转致周公
  10. [SDOI2016] 生成魔咒(后缀数组SA + st表 + set)动态不同子串个数
  11. 国庆海报设计适合哪些精品背景纹理?
  12. Mongodb亿级数据量的性能测试比较完整收藏一下
  13. 我的大数据方法论:求扔砖
  14. 【学习】如何用jQuery获取iframe中的元素
  15. 微信服务号推送服务模板消息
  16. 微信小程序服务器被ddos攻击,网站被DDOS攻击了怎么办
  17. 笔记本电脑数字键盘打不出数字的解决方案
  18. NDK开发——FFmpeg实现视频转YUV、视频转RGB显示、音频转PCM、音频播放、音视频同步
  19. 在CentOS7上运行KVM虚拟机
  20. 外媒:京东方正寻求为苹果iPhone供应OLED屏幕

热门文章

  1. 中职学校计算机教学背景,简析中职学校计算机课堂有效教学
  2. 数据治理系列:数据仓库物理分层_数据仓库逻辑分层
  3. 宇枫资本家庭理财必知的小方法
  4. 教幼儿园孩子计算机知识,幼儿园大班数学知识教案-5个5个数数
  5. 【Linux】linux中,你不得不爱的命令集(下)
  6. dpkg命令制作deb包
  7. oracle子查询 select语句,select查询之三:子查询
  8. 剧本杀,是怎么被毁成脱单神器的?
  9. mendeley引用参考文献不显示_免费文献管理器 Mendeley,其实比你想象的好用!
  10. noj14 求广义表深度