题目链接:https://codeforces.ml/contest/723/problem/E

描述:

给出一个无向图,确定边的方向,是入度等于出度的点最多。

分析:

有一个重要的定理:一个无向图度数为奇数的点必有偶数个。

所有度数为偶数的点均可以满足出度等于入度。

所以可以将所有度数是奇数的点连向虚点n+1,这样新建的图满足欧拉回路,跑一边欧拉回路,便可得到边的方向。输出时与0相连的边注意删掉。

#include<bits/stdc++.h>
#define N 210
#define ll long long
#define pii pair<int,int>using namespace std;
vector<pair<int,int> >ans;
vector<int>v[N];
int n,d[N],m,vis[N][N];
void dfs(int x){for(int i=0;i<v[x].size();i++){int to=v[x][i];if(!vis[to][x]){vis[to][x]=1;vis[x][to]=1;dfs(to);ans.push_back(make_pair(x,to));}}
}
int main(){int qt;scanf("%d",&qt);while(qt--){scanf("%d%d",&n,&m);int x,y;for(int i=1;i<=n+1;i++)d[i]=0,v[i].clear();for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);v[x].push_back(y);v[y].push_back(x);d[x]++;d[y]++;}ans.clear();for(int i=1;i<=n+1;i++)for(int j=1;j<=n+1;j++)vis[i][j]=0;int t=0;for(int i=1;i<=n;i++){if(d[i]%2==1){v[n+1].push_back(i);v[i].push_back(n+1);t++;}}printf("%d\n",n-t);for(int i=1;i<=n;i++)dfs(i);for(int i=0;i<ans.size();i++){if(ans[i].first!=n+1&&ans[i].second!=n+1)printf("%d %d\n",ans[i].first,ans[i].second);}}return 0;
}

CF723E. One-Way Reform(欧拉回路)相关推荐

  1. CF723E:One-Way Reform

    传送门 答案上界为该无向图中的偶点数量,可以通过构造使得答案达到上界 所以答案就是偶点数量 可是还要输出方案,可以创造一个虚点与所有奇点连边,这样一来就可以跑欧拉路 顺便答案是n-奇点个数 Code: ...

  2. CF723E 欧拉回路

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

  3. CF723E(欧拉回路)

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

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

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

  5. uoj 117 欧拉回路

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

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

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

  7. hdu 1878 欧拉回路

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

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

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

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

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

最新文章

  1. 【Qt】解决在linux上使用Qt的媒体模块(Qt += multimedia)缺少模块multimedia的问题
  2. 虚拟化--015 配置VMware View Event database失败:
  3. java 日期的加减_用java实现日期类的加减
  4. 一篇文章搞定GVIM(根据工作经验持续更新)
  5. boost::statechart模块测量 BitMachine 的事件处理性能的测试程序
  6. 采用静态配置文件方式实现AOP
  7. 【渝粤教育】广东开放大学 演讲与口才 形成性考核 (1)
  8. java isempty_Java ArrayDeque isEmpty()方法与示例
  9. python解释器遇到if __name__==__main__会如何做?
  10. ntp协议中 服务器失效怎么办,排除网络时间协议(NTP)故障
  11. 疫情之下 SaaS 市场两极分化,SaaS 厂商如何突围严峻形势?
  12. rollback 最后判断成功_最后4天!这些你知道吗?
  13. 金毅泓:10.6美元持续上涨,金价萎靡关注晚间ADP数据
  14. STM32之字模软件的使用
  15. matlab求六自由度机械臂,基于人工势场的六自由度空间机械臂避障路径
  16. Windows OCR推荐
  17. keras中sample_weight的使用
  18. RecyclerView侧滑删除
  19. 机器学习笔记(通俗易懂)---监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2)
  20. 2020iPS细胞研究进展综述

热门文章

  1. vue中换一换 每次换5个
  2. 论《三国演义》里那些细节
  3. 2023最新ThinkPHP6开发云梦卡社区系统源码+代码已开源+UI美观
  4. Linux网络编程基础<多进程并发服务器>
  5. 什么降噪蓝牙耳机好?资深数码博主叫你如何避雷
  6. 2010-2011赛季 西班牙国家德比 巴塞罗那VS皇家马德里 总结贴
  7. myeclipse导项目_Myeclipse或eclipse导入项目并部署到tomcat中运行
  8. python奇数阶乘求和_使用Python阶乘求和的方法及问题总结
  9. Qt - QSetting的使用
  10. VB和C#中循环语句