洛谷 题解 P2731 【骑马修栅栏 Riding the Fences】
简单的开始
完美の开始
这里数组什么的用来干什么后面标注的清楚了
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int map[10001][10001];//记录两个点之间的路径个数
int du[10001];//辅助记录奇点
int lu[10001];//记录路径
int n,x,y,js=0;//输入的数据和计数器
int maxn=0;
正题开始QWQ
先说思路: 很简单和一本通上的例题一笔画没什么差别就是多了一个点可能会重复出现罢了。
可以按正常的输入然后存入map数组(PS:如果你用的是万能头就不要定义map数组啦,可以定义一个f数组什么的)这里就出现和一本通上一笔画的差距了,是累减,每次记录就加一而不是赋值为1 。。。。因为后面很多地方需要用到点的个数,但是却没有输入所以专门定义一个maxn来找输入的最大值就是点的个数啦
注意这里要定义一个数组记录出现次数,在输入的时候每次一出现就加一然后在后面单独找,看看谁不是2的倍数记录下来结束循环
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d%d",&x,&y);
map[x][y]++;
map[y][x]++;
du[x]++;
du[y]++;//记录出现的次数
maxn=max(maxn,max(x,y));
}
int start=1;//默认奇点是1
for(int i=1;i<=maxn;++i)
{
if(du[i]%2)//找到奇点
{
start=i;//记录奇点
break;//然后结束循环
}
}
find(start);//从奇点开始找
for(int i=js;i>=1;i--)
{
printf("%d\n",lu[i]);//挨个输出路径并且换行
}
return 0;
然后就说函数部分了,也就是上面的find函数QWQ.这里很好想的,就是模板改一下,变为0改为减一QWQ简单的我不想多说 函数代码
void find(int i)//
{
int j;
for(j=1;j<=maxn;++j)//而且这里不是n而是maxn因为n不是点的个数而是下面有多少行
{
if(map[i][j]>=1)
{
map[i][j]--;//删去边一次吗避免重复
map[j][i]--;//z这里和一笔画不一样这里是累减而一笔画直接变成0
find(j);
}
}
lu[++js]=i;
}
话不多说完整代码
//防伪标识
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int map[10001][10001];//记录两个点之间的路径个数
int du[10001];//辅助记录奇点
int lu[10001];//记录路径
int n,x,y,js=0;
int maxn=0;
void find(int i)//
{
int j;
for(j=1;j<=maxn;++j)//而且这里不是n而是maxn因为n不是点的个数而是下面有多少行
{
if(map[i][j]>=1)
{
map[i][j]--;//删去边一次吗避免重复
map[j][i]--;//z这里和一笔画不一样这里是累减而一笔画直接变成0
find(j);
}
}
lu[++js]=i;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d%d",&x,&y);
map[x][y]++;
map[y][x]++;
du[x]++;
du[y]++;//记录出现的次数
maxn=max(maxn,max(x,y));
}
int start=1;//默认奇点是1
for(int i=1;i<=maxn;++i)
{
if(du[i]%2)//找到奇点
{
start=i;//记录奇点
break;//然后结束循环
}
}
find(start);//从奇点开始找
for(int i=js;i>=1;i--)
{
printf("%d\n",lu[i]);//挨个输出路径并且换行
}
return 0;
}
综上所述,已AC
完美の结束
(看的这么累,不点个赞再走QWQ)
洛谷 题解 P2731 【骑马修栅栏 Riding the Fences】的更多相关文章
- 洛谷P2731 骑马修栅栏 Riding the Fences
P2731 骑马修栅栏 Riding the Fences• o 119通过o 468提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题解 最新讨论 • 数据有问题题 ...
- 洛谷 P2731 骑马修栅栏 Riding the Fences
P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...
- 洛谷 P2731 骑马修栅栏 Riding the Fences 解题报告
P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...
- P2731 骑马修栅栏 Riding the Fences 题解(欧拉回路)
题目链接 P2731 骑马修栅栏 Riding the Fences 解题思路 存图+简单\(DFS\). 坑点在于两种不同的输出方式. #include<stdio.h> #define ...
- P2731 骑马修栅栏 Riding the Fences
题目描述 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次.John能从任何一个顶 ...
- luogu P2731 骑马修栅栏 Riding the Fences
入度为奇数的点,搜他. 最好邻接矩阵... #include<cstdio> #include<iostream> #define R register int using n ...
- 欧拉回路--P2731 骑马修栅栏 Riding the Fences
实在懒得复制题干了 *传送 1.定义 *如果图G(有向图或者无向图)中所有边一次仅且一次行遍所有顶点的通路称作欧拉通路. *如果图G中所有边一次仅且一次行遍所有顶点的回路称作欧拉回路. *具有欧拉回路 ...
- 「USACO」「LuoguP2731」 骑马修栅栏 Riding the Fences(欧拉路径
Description Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编 ...
- USACO Section 3.3 骑马修栅栏 Riding the Fences
题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个 ...
- LG2731 骑马修栅栏 Riding the Fences
题意 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次.John能从任何一个顶点( ...
随机推荐
- Golang ---基准测试
什么是基准测试 基准测试,是一种测试代码性能的方法,比如你有多种不同的方案,都可以解决问题,那么到底是那种方案性能更好呢?这时候基准测试就派上用场了. 基准测试主要是通过测试CPU和内存的效率问题,来 ...
- 转:使用Goproxy解决golang.org模块无法下载的问题
原文https://studygolang.com/articles/22277?fr=sidebar 简介 Goproxy 中国完全实现了 Go 的模块代理协议.并且它是一个由中国备受信赖的云服务提 ...
- Java 中 Hashtable与HashMap的区别
Map Map是一个以键值对存储的接口.Map下有两个具体的实现,分别是HashMap和HashTable. 区别: 1.HashMap是线程非安全的,HashTable是线程安全的,所以HashMa ...
- ImportError: cannot import name Namespace
运行socketServer报错. 解决: pip uninstall python-socketio pip install python-socketio
- 2019 咪咕文化java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.咪咕文化等公司offer,岗位是Java后端开发,最终选择去了咪咕文化. 面试了很多家公司,感觉大部分公司考察的点 ...
- codeforces Round #568(Div.2)A B C
有点菜,只写出了三道.活不多说,上题开干. A. Ropewalkers Polycarp decided to relax on his weekend and visited to the per ...
- 关于 Safari 浏览器不支持 location [ window.location.href window.open()] 跳转问题的解决方案
最近在做项目时,碰到 safari 浏览器不支持location跳转问题,针对此问题,可以通过 js 模拟点击时间来解决,代码如下: <!DOCTYPE HTML> <html la ...
- CSS 滑动门案例
一.什么是滑动门特效 为了使各种特殊形状的背景能够自适应元素中文本内容的多少,出现了CSS滑动门技术.它从新的角度构建页面,使各种特殊形状的背景能够自由拉伸滑动,以适应元素内部的文本内容,可用性更强. ...
- springboot-实现log4j的AOP切面
参考链接: https://www.cnblogs.com/liaojie970/p/7883687.html https://blog.csdn.net/autfish/article/detail ...
- ETL讲解
ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析依据. ETL是BI项目重要的一个环节. 通常情况下,在 ...