博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
骑马修栅栏
阅读量:4332 次
发布时间:2019-06-06

本文共 1359 字,大约阅读时间需要 4 分钟。

对刚学的欧拉回路的练习。

错点:

  1. 万一是欧拉路径不是欧拉回路的话,不能只选一个最小的点当起点。要选度数为奇数的两个点中较小的一个。
  2. \(1\)不一定在连通图内,不能单纯的把\(1\)当做起点。

3.见代码中的注释。

#include
#include
#include
#include
using namespace std;const int N = 5005;int m,n,head[N],tot,tmp[N],t,ans[N];int st[N],top,s=2e9,du[N];bool vis[N];struct edge{ int node,next;}e[N<<1];void add(int x,int y){ e[++tot].node=y; e[tot].next=head[x]; head[x]=tot;}int main(){ scanf("%d",&m); int x,y; tot=1;//漏掉了tot=1; for(int i=1;i<=m;i++) { scanf("%d%d",&x,&y); add(x,y); add(y,x); du[x]++; du[y]++; s=min(s,min(x,y)); } for(int i=1;i<=500;i++) if(du[i]&1) { s=i; break; } st[++top]=s; while(top>0) { int u=st[top],i=head[u]; while(i&&vis[i]) i=e[i].next; if(!i) { --top; ans[++t]=u; } else { int tt=0; for(i=head[u];i;i=e[i].next) if(!vis[i]) tmp[++tt]=e[i].node; sort(tmp+1,tmp+tt+1); st[++top]=tmp[1]; for(i=head[u];i;i=e[i].next) if(e[i].node==tmp[1]&&!vis[i]) { vis[i]=vis[i^1]=1; break; }//这里找到一个就要break,因为如果有重边的话所有的与tmp[1]相连的边都会被标记 } } for(int i=t;i;i--) printf("%d\n",ans[i]); return 0;}

转载于:https://www.cnblogs.com/karryW/p/11402969.html

你可能感兴趣的文章
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>