一笔画问题【经典递归】

//摘取题目

题目描述
对给定的一个无向图,判断能否一笔画出。若能,输出一笔画的先后顺序,否则输出“No Solution!”
所谓一笔画出,即每条边仅走一次,每个顶点可以多次经过。
输出字典序最小的一笔画顺序。
输入
第1行:1个整数n,表示图的顶点数(n<=100)
接下来n行,每行n个数,表示图的邻接矩阵
输出
第1行:一笔画的先后顺序,每个顶点之间用一个空格分开
样例输入 Copy
样例一
3
0 1 1
1 0 1
1 1 0
样例二:
7
0 1 0 1 1 0 1
1 0 1 0 0 0 0
0 1 0 1 0 0 0
1 0 1 0 0 0 0
1 0 0 0 0 1 0
0 0 0 0 1 0 1
1 0 0 0 0 1 0
样例输出 Copy
样例一:
1 2 3 1
样例二:
1 2 3 4 1 5 6 7 1
//
首先要知道,图中点的度都为偶数或有两个点为奇数时肯定可以一笔画完,否则不行;
然后找路径:
先是找最小的起点,之后用递归找到一个后,就去找它的边,有符合的边就把它从图中删去,然后递归该边的第二个点,只要有最优解,就会返回,在返回时将点序号存入数组,最后需倒序输出即可。

接下来,我奉上拙作;
没有考虑很特殊的请况,大家可以自己去想想(⊙o⊙)哦

#include<iost
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值