洛谷 题解 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能从任何一个顶点( ...
随机推荐
- loadbalance轮询算法 java实现
/** * <html> * <body> * <P> Copyright JasonInternational</p> * <p> All ...
- AspNetCore MVC页面数据提交验证
2019/05/14,AspNetCore 2.2.0 摘要:AspNetCore MVC使用数据注释配合jquery.validate提交页面进行前端加后端的数据验证 主要用到了jquery.val ...
- SessionChange
protected override void OnSessionChange(SessionChangeDescription changeDescription) { System.IO.File ...
- sqlserver还原差异备份
因为之前遇到还原差异备份,最开始遇到SQLServer报错:"无法还原日志备份或差异备份,因为没有文件可用于前滚".查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出 ...
- aria2 cmd set chmod, and others..
import 'package:flutter/material.dart'; import 'dart:io'; import 'dart:async'; import 'package:rxdar ...
- copy file
import io,,,,,,, from https://pub.dev/packages/large_file_copy Directory directory = await getApplic ...
- selenium浏览器自动化测试框架文档(修正版)
写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...
- 编辑表格输入内容、根据input输入框输入数字动态生成表格行数、编辑表格内容提交传给后台数据处理
编辑表格输入内容.根据input输入框输入数字动态生成表格行数.编辑表格内容提交传给后台数据处理 记录自己学习做的东西,写的小demo,希望对大家也有帮助! 代码如下: <!DOCTYPE ht ...
- js正则表达式【续】(相关字符的解释含义)
1.字符类[直接量] . (点号,小数点) 匹配任意单个字符,但是行结束符除外\d 匹配一个0-9之间的阿拉伯数字.等价于[0-9]\D 匹配任意一个不是0-9之间阿拉伯数字的字符.等价于[^0 ...
- react-router4的使用备注
1.安装 react-router是核心库,在项目中不需要安装,web开发只需安装react-router-dom.native开发安装react-router-native. 2.url参数携带与获 ...