S · B · Y · X 2023-08-24 13:55 采纳率: 40%
浏览 7
已结题

一到C++题答案错误

题目:一笔画问题
题目描述
  如果一个图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路。

输入输出格式
输入格式:
第一行n,m,有n个点,m条边,以下m行描述每条边连接的两点。

输出格式:
欧拉路或欧拉回路

输入输出样例
输入样例#1:
5 5
1 2
2 3
3 4
4 5
5 1

输出样例#1:
1 5 4 3 2 1


```c++
#include<bits/stdc++.h>
using namespace std;
int n,x,y,m[2025][2025],degree[2025],s=1,route[10010],pos,k;
void find(int start){
    route[pos++]=start;
    for(int i=k;i>=1;i--){
        if(m[start][i]){
            m[start][i]=0;
            m[i][start]=0;
            find(i);
        }
    }
}
int main(){
    scanf("%d%d",&k,&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&x,&y);
        m[x][y]=m[y][x]=1;
        degree[x]++,degree[y]++;
    }
    for(int i=1;i<=k;i++){
        if(degree[i]%2==1){
            s=i;
            break;
        }
    }
    find(s);
    for(int i=0;i<pos;i++) printf("%d ",route[i]);
}



> 错误样例
>输入:8 15
1 2
2 3
3 4
4 5
5 6
6 1
1 7
2 7
3 7
4 7
1 8
2 8
3 8
4 8
5 8
>正确输出:5 8 4 7 3 8 2 7 1 6 5 4 3 2 1 8 
  • 写回答

3条回答 默认 最新

  • 追逐远方的梦 2023-08-24 15:41
    关注

    先将每个点的度数都记录下来。再根据欧拉回路和欧拉通路的定义去计算。欧拉回路就是所有的顶点度数都是偶数,是一个圈。欧拉通路就是只有(两个点或0个点)的度数是奇数。所以欧拉回路也是特殊的欧拉通路。你在问问题的时候应该明确指出你是哪里错了。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 专家已采纳回答 8月29日
  • 创建了问题 8月24日

悬赏问题

  • ¥15 maven打包时,为什么有的依赖打不进去包
  • ¥15 求复现机器学习文章一篇
  • ¥15 爬虫抓取数据|解析视频文本内容(相关搜索:自动化)
  • ¥15 combobox绑定值改变的问题
  • ¥15 from seleniumwire import webdriver 在抓取http://链接的时候会自动转https://这个怎么解决
  • ¥15 hive直连数据库模式插入mysql表数据失败(相关搜索:数据库)
  • ¥30 不会,学习,有偿解答
  • ¥15 SQL查询语句报错(检查)
  • ¥15 此表中公式应该怎么写
  • ¥15 求HI-TECH PICC 9.50 PL3安装包