C - Door Man(欧拉回路_格式控制)
现在你是一个豪宅的管家,因为你有个粗心的主人,所以需要你来帮忙管理,输入会告诉你现在一共有多少个房间,然后会告诉你从哪个房间出发,
你的任务就是从出发的房间通过各个房间之间的通道,来把所有的门都关上,然后最后回到0的房间。
- Always shut open doors behind you immediately after passing through
- Never open a closed door
- End up in your chambers (room 0) with all doors closed
In this problem, you are given a list of rooms and open doors between them (along with a starting room). It is not needed to determine a route, only if one is possible.
Input
A single data set has 3 components:
- Start line - A single line, "START M N", where M indicates the butler's starting room, and N indicates the number of rooms in the house (1 <= N <= 20).
- Room list - A series of N lines. Each line lists, for a single room, every open door that leads to a room of higher number. For example, if room 3 had open doors to rooms 1, 5, and 7, the line for room 3 would read "5 7". The first line in the list represents room 0. The second line represents room 1, and so on until the last line, which represents room (N - 1). It is possible for lines to be empty (in particular, the last line will always be empty since it is the highest numbered room). On each line, the adjacent rooms are always listed in ascending order. It is possible for rooms to be connected by multiple doors!
- End line - A single line, "END"
Following the final data set will be a single line, "ENDOFINPUT".
Note that there will be no more than 100 doors in any single data set.
Output
Sample Input
START 1 2
1 END
START 0 5
1 2 2 3 3 4 4 END
START 0 10
1 9
2
3
4
5
6
7
8
9 END
ENDOFINPUT
Sample Output
YES 1
NO
YES 10
题目描述:
你是一座大庄园的管家。庄园有很多房间,编号为0、1、2、3,...。你的主人是一个心不在焉的人,经常沿着走廊随意地把房间的门打开。多年来,你掌握了一个诀窍:沿着一个通道,穿过这些大房间,并把房门关上。你的问题是能否找到一条路径经过所有开着门的房间,并使得:
1) 通过门后立即把门关上;
2) 关上了的门不再打开;
3) 最后回到你自己的房间(房间0),并且所有的门都已经关闭了。
在本题中,给定房间列表,及连通房间的、开着的门,并给定一个起始房间,判断是否存在这样的一条路径。不需要输出这样的路径,只需判断是否存在。假定任意两个房间之间都是连通的(可能需要经过其他房间)。
输入描述:
输入文件包含多个(最多可达100 个)测试数据,每个测试数据之间没有空行隔开。
每个测试数据包括3 部分:
起始行-格式为“START M N”,其中M 为管理员起始所处的房间号,N 为房间的总数(1≤N≤20);
房间列表-一共N 行,每行列出了一个房间通向其他房间的房间号(只需列出比它的号码大的房间号,可能有多个,按升序排列),比如房间3 有门通向房间1、5、7,则房间3 的信息行内容为“5 7”,第一行代表房间0,最后一行代表行间N-1。有可能有些行为空行,当然最后一行肯定是空行,因为N-1 是最大的房间号;两个房间之间可能有多扇门连通。
终止行-内容为"END"。
输入文件最后一行是"ENDOFINPUT",表示输入结束。
输出描述:
每个测试数据对应一行输出,如果能找到一条路关闭所有的门,并且回到房间0,则输出"YESX",X 是他关闭的门的总数,否则输出"NO"。
欧拉回路小题
- 1) 如果所有的房间都有偶数个门(通往其他房间),那么有欧拉回路,可以从0 号房间出发,回到0 号房间。但是这种情况下,出发的房间必须为0,因为要求回到0 号房间。
- 2) 有两个房间的门数为奇数,其余的都是偶数,如果出发的房间和0 号房间的门数都是奇数,那么也可以从出发的房间到达0 号房间,并且满足题目要求。但是不能从房间0 出发,必须从另一个门数为奇数的房间出发。
1 #include <stdio.h>
2 #include <string.h>
3 #include <algorithm>
4 using namespace std;
5 int main()
6 {
7 int mp[200];
8 char s[30];
9 int n,m;
10 while(scanf("%s",s),strcmp(s,"ENDOFINPUT"))
11 {
12 memset(mp,0,sizeof(mp));
13 scanf("%d%d",&n,&m);
14 char ch=getchar();
15 for(int i=0;i<m;i++)
16 {
17 ch=getchar();
18 while(ch!='\n')
19 {
20 if(ch!=' ')
21 {
22 mp[i]+=1;
23 mp[ch-'0']++;
24 }
25 ch=getchar();
26 }
27 }
28 int flag=0,sum=0;
29 for(int i=0;i<m;i++)
30 {
31 if(mp[i]%2)
32 flag++;
33 sum+=mp[i];
34 }
35 /*
36 欧拉回路的特点是入度等于出度,
37 若起始点为0,则需要所有入度都等于出度,
38 若起始点不是0,
39 则需要非起始点和0点以外都有偶数个出入边。
40 起始点和0点都有奇数个出入边。
41 */
42 if((flag==0&&n==0)||(flag==2&&(mp[0]%2)&&n))
43 printf("YES %d\n",sum/2);
44 else
45 printf("NO\n");
46 scanf("%s",s);
47 }
48 }
C - Door Man(欧拉回路_格式控制)的更多相关文章
- matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...
- 第3.11节 Python强大的字符串格式化新功能:format字符串格式化的格式控制
第3.11节 format字符串格式化的格式控制 一. 引言 上节介绍了四种format进行字符串格式化的 ...
- 9月5日网页基础知识 通用标签、属性(body属性、路径、格式控制) 通用标签(有序列表、无序列表、常用标签)(补)
网页基础知识 一.HTML语言 HTML语言翻译汉语为超文本标记语言. 二.网页的分类 1.静态页面:在静态页面中修改网页内容实际上就是修改网页原代码,不能从后台操作,数据来只能来源于原于代码.静态网 ...
- html标签,格式控制标签,内容容器标签,超链接标签,图片标签,表格
打开DREAMWEAVER,新建HTML,如下图: body的属性: bgcolor 页面背景色 background 背景壁纸.图片 text 文字颜色 topmargin 上边距 leftm ...
- html body的属性 格式控制标签 内容容器标签 超链接标签 图片标签 表格
一.body的属性 <body bgcolor 页面背景色 background 背景壁纸.图片 text文字颜色 topmargin上边距 leftmargin左边距 rightmargi ...
- C++文件操作(输入输出、格式控制、文件打开模式、测试流状态、二进制读写)
1.向文件写数据 头文件#include <ofstream> ①Create an instance of ofstream(创建ofstream实例) ②Open the file w ...
- printf的格式控制的完整格式
printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少.②-:有-表示左对齐输出,如省略表示右对齐输出 ...
- C 语言 printf格式控制详解
闲来无事,整理了一下C语言printf() 的格式控制语句. PS:详细来源于网络. printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说 ...
- printf格式控制详解
format 参数输出的格式,定义格式为 %[flags][width][.precision][length]specifier specifier在最后面.定义了数据类型. Where the s ...
随机推荐
- uni-app阻止事件向父级冒泡
在官网找到的就只有这个方法,但是我放在app项目里并不支持,所以就想到vue的阻止事件冒泡的方法,现在分享,免得大家踩坑 <view class="parent" @ ...
- 【JavaWeb】Cookie&Session
Cookie&Session Cookie 什么是 Cookie Cookie 即饼干的意思 Cookie 是服务器通知客户端保存键值对的一种技术 客户端有了 Cookie 后,每次请求都发送 ...
- 安装蓝鲸paas社区版
安装蓝鲸paas社区版http://docs.bk.tencent.com/bkce_install_guide/setup/get_ready.html#hostssystemctl stop fi ...
- SpringBoot配置文件(1)
配置文件 1.配置文件 SpringBoot使用一个全局的配置文件 application.properties application.yml 配置文件名是固定的: 他的作用是修改SpringBoo ...
- MongoDB Sharding(一) -- 分片的概念
(一)分片的由来随着系统的业务量越来越大,业务系统往往会出现这样一些特点: 高吞吐量 高并发 超大规模的数据量 高并发的业务可能会耗尽服务器的CPU,高吞吐量.超大规模的数据量也会带来内存.磁盘的压力 ...
- Zabbix 4.0.24 完整安装
依赖包安装: yum install net-snmp* libssh-devel libssh2-devel -y Zabbix server安装: wget https://cdn.zabbix. ...
- 【Oracle】查看当前连接数和最大连接数
查看当前数据库连接数 select count(*) from v$session where username is not null; select count(*) from v$process ...
- ctfshow—web—web签到题
打开靶机,发现只有一句话 查看源码 发现一段字符串,猜是base64加密 拿到flag
- C# 合并和拆分PDF文件
一.合并和拆分PDF文件的方式 PDF文件使用了工业标准的压缩算法,易于传输与储存.它还是页独立的,一个PDF文件包含一个或多个"页",可以单独处理各页,特别适合多处理器系统的工作 ...
- LTH7锂电池充放电IC完整方案
内容目录: A,LTH7贴片5脚充电芯片 PW4054 1, 单节的锂电池保护电路 单节为3.7V锂电池(也叫4.2V)和3.8V锂电池(也叫4.35V) 2, 单节的锂电池充电电路 ...