当前位置:网站首页>1124. 骑马修栅栏
1124. 骑马修栅栏
2022-07-29 13:16:00 【追寻远方的人】
农民John每年有很多栅栏要修理。
他总是骑着马穿过每一个栅栏并修复它破损的地方。
John是一个与其他农民一样懒的人。
他讨厌骑马,因此从来不两次经过一个栅栏。
你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。
John能从任何一个顶点(即两个栅栏的交点)开始骑马,在任意一个顶点结束。
每一个栅栏连接两个顶点,顶点用 1 到 500 标号(虽然有的农场并没有 500 个顶点)。
一个顶点上可连接任意多( ≥1 )个栅栏。
所有栅栏都是连通的(也就是你可以从任意一个栅栏到达另外的所有栅栏)。
你的程序必须输出骑马的路径(用路上依次经过的顶点号码表示)。
我们如果把输出的路径看成是一个500进制的数,那么当存在多组解的情况下,输出500进制表示法中最小的一个 (也就是输出第一个数较小的,如果还有多组解,输出第二个数较小的,等等)。
输入数据保证至少有一个解。
输入格式
第 1 行:一个整数 F,表示栅栏的数目;
第 2 到 F+1 行:每行两个整数 i,j 表示这条栅栏连接 i 与 j 号顶点。
输出格式
输出应当有 F+1 行,每行一个整数,依次表示路径经过的顶点号。
注意数据可能有多组解,但是只有上面题目要求的那一组解是认为正确的。
数据范围
1≤F≤1024,
1≤i,j≤500
输入样例:
9
1 2
2 3
3 4
4 2
4 5
2 5
5 6
5 7
4 6
输出样例:
1
2
3
4
2
5
4
6
5
7
代码:
/* 先遍历1号点(编号从1到n),则1号点一定最后被加入欧拉路径。 因此只要按照从小到大的点的序号搜,就可以得到字典序最小的欧拉路径(最后逆序输出,最小的点会最后加入res) */
#include <bits/stdc++.h>
using namespace std;
const int N = 510;
int n = 500, m;
int g[N][N];
vector<int> res;
int d[N];
void dfs(int u)
{
for (int i = 1; i <= n; i++)//顺序访问 符合字典序
{
if (g[u][i])
{
g[u][i]--, g[i][u]--;
dfs(i);
}
}
res.push_back(u); // 求路径上的点顺序
}
int main()
{
cin >> m;
while (m--)
{
int a, b;
cin >> a >> b;
g[a][b]++, g[b][a]++;
d[a]++, d[b]++;
}
int start = 1;
while (!d[start])
start++;
for (int i = 1; i <= n; i++)
{
if (d[i] % 2)
{
start = i;
break;
}
}
dfs(start);
for (int i = res.size() - 1; i >= 0; i--)
{
printf("%d\n", res[i]);
}
return 0;
}
边栏推荐
- 图解 Attention(完整版)!
- 【论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning
- Leetcode65. 有效数字
- BGP简单实验
- Py之eli5:eli5库的简介、安装、使用方法之详细攻略
- IJCAI 2022 outstanding papers published, China won two draft in 298 the first author
- IJCAI 2022杰出论文公布,大陆作者中稿298篇拿下两项第一
- 25年来最经典的电影特效名场面
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
- Nacos hierarchical storage model - the cluster configuration and NacosRule load balance
猜你喜欢

多人协作开发出现代码冲突,如何合并代码?

Sql文件导入数据库-保姆级教程

「 工业缺陷检测深度学习方法」最新2022研究综述

Scala 简介一

Super young!34-year-old professor, vice president of 985 Ace College!

即时通讯移动端开发之网络连接优化

npm出现报错 npm WARN config global `--global`, `--local` are deprecated. Use `--location=global

Nacos hierarchical storage model - the cluster configuration and NacosRule load balance

中国电信首发全新加密通话产品!有效防止网络监听

还在开发短信验证码登录?试试(本机号码一键登录)
随机推荐
grid的使用
连接oracle数据库指令
深度解析C语言文件操作以及常见问题
"Industrial flaw detection depth study method" the latest 2022 research were reviewed
【论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning
带你了解一下PHP搭建的电商商城系统
用支持LaTex的Markdown语句编辑一个数学公式
DVWA full level customs clearance tutorial
Super young!34-year-old professor, vice president of 985 Ace College!
JUC阻塞队列-ArrayBlockingQueue
Bika LIMS 开源LIMS集—— SENAITE的使用(用户、角色、部门)
人脸合成效果媲美StyleGAN,而它是个自编码器
线程池拒绝策略详解
多人协作开发出现代码冲突,如何合并代码?
【C#】WCF和TCP消息通信练习,实现聊天功能
码蹄集 tourist
IJCAI 2022杰出论文公布,大陆作者中稿298篇拿下两项第一
[MySQL view] View concept, create, view, delete and modify
Sqoop导入导出时数据内存溢出
conda环境创建及复制