题目大意:给出连通的房间,让你求能否从0走到M并且关闭了所有的房间,注意关闭的房间不能再次打开。题目已经告诉你图已经连通。
算法思路:就是让你求这个图是否是一个欧拉回路或者是欧拉图,当m==0的时候求是否是欧拉回路,当m!=0的时候求是否是欧拉图。
无向图欧拉回路的判定:图连通并且所有点的度是偶数。
无向图欧拉通路的判定:图连通并且度为奇数的点位0个或2个,且这两个奇点必为起点或终点。
有向图欧拉回路的判定:图连通且任意一点的入度等于出度。
有向图欧拉通路的判定:图连通且恰好只有2个点,其中一个出度比入度多一(起点),另一个入度比出度多一(终点)。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; char str[30]; char str2[300]; int n,m,cnt; int degree[200]; bool isEulerH() { for(int i=0;i<n;i++) { if(degree[i]%2!=0) return false; } return true; } bool isEulerT(int st,int ed) { int k1=-1,k2=-1,sum=0; for(int i=0;i<n;i++) { if(degree[i]%2!=0) sum++; if(degree[i]%2!=0&&k1==-1) { k1=i; } else if(degree[i]%2!=0&&k2==-1) { k2=i; } } if(sum==1||sum>2) return false; else if((k2==st&&k1==ed)||(k2==ed&&k1==st)) return true; return false; } int main() { while(true) { scanf("%s",str); if(!strcmp(str,"START")) { cnt=0; memset(degree,0,sizeof(degree)); scanf("%d%d",&m,&n); getchar(); for(int i=0;i<n;i++) { // getchar(); gets(str2); for(int j=0;j<strlen(str2);j++) { if(str2[j]!=' ') { degree[i]++; degree[str2[j]-'0']++; cnt++; } } } } else if(!strcmp(str,"END")) { if(isEulerH()&&m==0)//若m==0说明原图需要是一个欧拉回路 { printf("YES %d\n",cnt); } else if(isEulerT(0,m))//若m!=0则说明原图只需要是一个欧拉通路即可 { printf("YES %d\n",cnt); } else { printf("NO\n"); } } else if(!strcmp(str,"ENDOFINPUT")) { break; } } return 0; }
相关推荐
### POJ 1300 Door Man:无向图、欧拉定理、gets、sscanf #### 一、题目背景及概述 本题属于图论中的经典问题之一,主要涉及无向图以及欧拉定理的应用。题目要求判断一个无向图是否满足欧拉路径(或欧拉回路)的...
《POJ 1000 - 2000 部分题目 官方分类》 编程竞赛,特别是在线判题系统(如POJ,即Problem Online Judge)中的题目,是提升编程技能和算法理解的重要途径。POJ 1000 - 2000 是一个涵盖广泛的题目区间,包含了大量的...
carsim,simulink联合仿真,自动驾驶基于mpc自定义期望速度跟踪控制,可以在外部自定义期望速度传入sfunction函数,设置了两个不同状态方程,控制量为加速度,加速度变化量提供进行对比,carsim2019
内容概要:本文介绍了一种基于阿基米德优化算法(AOA)的零空闲流水车间调度问题(NIFSP)的求解方法。阿基米德优化算法(AOA)模拟古希腊数学家阿基米德螺旋思想,通过模拟浮力和杠杆原理进行全局搜索和局部寻优。实验结果显示,AOA算法在NIFSP中有较好的表现,能有效降低加工时间和提高流水线效率。 适合人群:对智能制造和调度优化有兴趣的研究人员和工程技术人员。 使用场景及目标:用于制造业和其他相关行业中,解决零空闲流水车间调度的问题,从而优化生产效率和降低制造成本。 其他说明:该论文提供了完整的算法原理、实现步骤以及MATLAB实现的详细代码,方便读者理解和复现研究结果。文中还讨论了AOA算法的优越性及未来改进方向,为今后的研究提供了参考依据。
递进关系-关系图表-多彩微软风-5
图表分类ppt
一、实验目的 1.理解仿射密码的基本原理及加密、解密过程。 2.掌握利用 C 语言实现仿射密码加密与解密的基本方法。 3.通过实例观察仿射密码的加密效果及安全性。 4.通过实现简单的古典密码算法,理解密码学的相关概念,如明文、密文、加密密钥、解密密钥、加密算法、解密算法、流密码与分组密码等。
ACCENTURE - How luxury brands are reinventing for success_CAIG
项目资源包含:可运行源码+sql文件+文档 源码都是精心调试,有文档,可以部署,有费用,谢谢支持。 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Java 框架:SpringBoot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了后端服务(SpringBoot)和前端用户界面(Vue.js)技术,实现了前后端分离。
springboot项目基于MVC框架自习室管理和预约系统设计与实现,含有完整的源码和报告文档
项目资源包含:可运行源码+sql文件+文档 源码都是精心调试,有文档,可以部署,有费用,谢谢支持。 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Java 框架:SpringBoot+uniapp 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了后端服务(SpringBoot)和前端用户界面(Vue.js+uniapp)技术,实现了前后端分离。
图表分类ppt
基于java+springboot+vue+mysql的城镇保障性住房管理系统设计与实现.docx
springboot项目车险理赔信息管理系统修改代码,含有完整的源码和报告文档
奔跑上台阶层级关系PPT模板
基于java+springboot+vue+mysql的编程训练系统设计与实现.docx
PHP语言因其在构建基于数据库驱动的动态网站时展现的高度灵活性,已成为最流行的网站开发工具之一。PHP能够与诸如MySql数据库和Apache服务器等其他开源软件完美结合。然而,随着越来越多的网站采用PHP进行开发,它们也逐渐成为了恶意攻击者的目标,这要求开发者必须做好应对攻击的准备。随着攻击频率的上升,安全问题变得日益重要。《PHP安全基础》一书详细讲解了最常见的攻击方式,并阐述了编写安全代码的方法。通过实践各种攻击手段及其应对策略,读者可以深入理解书中介绍的安全措施。 《PHP安全基础》专注于网络应用中最关键的方面,每一章都通过一个实例(如表单处理、数据库编程、SESSION管理及验证)来讲解。每一章都详细说明了潜在的攻击方法以及防范攻击的技巧。书中主要内容包括: - 防止跨站脚本攻击漏洞 - 防止SQL注入攻击 - 防止Session劫持 《PHP安全基础》的目录如下: - 前言 - 内容简介 - 本书每章都描述了PHP开发中的一个方面。每一章又分为多个小节,每一小节都对该方面的攻击方式和防范技巧进行了讲述。 - 第一章,简介 - 本章提供了安全原则和一些好的
图表分类ppt
家庭微网优化模型matlab 考虑家庭电器设备的微网优化模型,采用matlab编程,采用粒子群算法,模型考虑空调的气温调节作用,有相应参考资料。
vlan 虚拟本地局域网