简单的开始

完美の开始

这里数组什么的用来干什么后面标注的清楚了


#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】的更多相关文章

  1. 洛谷P2731 骑马修栅栏 Riding the Fences

    P2731 骑马修栅栏 Riding the Fences• o 119通过o 468提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题解 最新讨论 • 数据有问题题 ...

  2. 洛谷 P2731 骑马修栅栏 Riding the Fences

    P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...

  3. 洛谷 P2731 骑马修栅栏 Riding the Fences 解题报告

    P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...

  4. P2731 骑马修栅栏 Riding the Fences 题解(欧拉回路)

    题目链接 P2731 骑马修栅栏 Riding the Fences 解题思路 存图+简单\(DFS\). 坑点在于两种不同的输出方式. #include<stdio.h> #define ...

  5. P2731 骑马修栅栏 Riding the Fences

    题目描述 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次.John能从任何一个顶 ...

  6. luogu P2731 骑马修栅栏 Riding the Fences

    入度为奇数的点,搜他. 最好邻接矩阵... #include<cstdio> #include<iostream> #define R register int using n ...

  7. 欧拉回路--P2731 骑马修栅栏 Riding the Fences

    实在懒得复制题干了 *传送 1.定义 *如果图G(有向图或者无向图)中所有边一次仅且一次行遍所有顶点的通路称作欧拉通路. *如果图G中所有边一次仅且一次行遍所有顶点的回路称作欧拉回路. *具有欧拉回路 ...

  8. 「USACO」「LuoguP2731」 骑马修栅栏 Riding the Fences(欧拉路径

    Description Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编 ...

  9. USACO Section 3.3 骑马修栅栏 Riding the Fences

    题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个 ...

  10. LG2731 骑马修栅栏 Riding the Fences

    题意 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次.John能从任何一个顶点( ...

随机推荐

  1. [cf 585 E] Marbles

    (一道Div2E不会,我太难了) 题意: 给你一个长度为$n$的颜色序列$A$,每次操作可以选择两个相邻元素交换,求把序列交换成“相同颜色挨在一起”所需的最少操作数. 按颜色排序:设颜色$col$在序 ...

  2. Hive 系列(三)—— Hive CLI 和 Beeline 命令行的基本使用

    一.Hive CLI 1.1 Help 使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下: usage: hive -d,--define <key=va ...

  3. redis cluster slots数量 为何是16384(2的14次方)

    Redis 集群并没有使用一致性hash,而是引入了哈希槽的概念. Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分has ...

  4. 2、在NET中实现多线程

    1.System.Threading命名空间 System.Threading命名空间提供了使得可以多线程编程的类和接口 其中 (1)Thread类构成了C#多线程编程的支柱,他用于创建并控制线程 ( ...

  5. 一分钟告诉你什么是OPC DA质量代码

    [关于TOP Server OPC Server试用版可登录慧都网该产品下载页进行下载] OPC DA(OPC实时数据访问规范)定义了包括数据值,更新时间与数据品质信息的相关标准.这个定义相信大家都很 ...

  6. 彻底解决unable to find valid certification path to requested target

    安装证书. 下载证书 第一步是要下载证书 去你程序要访问的网站,点击那个锁按钮,并点击查看详情(chrome浏览器) 点击View certificate 点击详细信息 复制到文件 下一步 选择格式 ...

  7. 创建Spring boot project报错:Project build error: Non-resolvable parent POM for xxx:0.0.1-SNAPSHOT: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent

    刚开始创建Spring boot项目时,pom.xml文件时报如下图错误: 在网上百度的说让更新下Maven的update project,我试了没用,最后将version版本改了就行了,我原来版本是 ...

  8. iOS网络请求之数据解析

    JSON解析 IOS中Json解析的四种方法 NSURLConnection-网络请求浅析 IOS开发:官方自带的JSON使用 XML 解析 GDataXMLNode应用 IOS学习:常用第三方库(G ...

  9. 图说jdk1.8新特性(2)--- Lambda

    简要说明 jdk常用函数式接口 Predicate @FunctionalInterface public interface Predicate<T> { boolean test(T ...

  10. sqlserver 备份集中的数据库备份与现有的 'XXX' 数据库不同。

    需求是将Ecology复制一份出来用于发布测试程序. 方案一 正确步骤 1.新建数据库Ecology2 2.选中Ecology2 点击右键:任务--还原--文件和文件组 选中源设备--点击右侧...按 ...