uva705--slash maze

/*这道题我原本是将斜线迷宫扩大为原来的两倍,但是在这种情况下对于在斜的方向上的搜索会变的较容易出错,所以参考了别人的思路后将迷宫扩展为原来的3倍,这样就变成一般的迷宫问题了*/

 1 #include"iostream"
 2 #include"stdio.h"
 3 #include"algorithm"
 4 #include"cmath"
 5 #include"string.h"
 6 #include"ctype.h"
 7 #include"queue"
 8 #include"map"
 9 #define mx 300
10 using namespace std;
11 int w,h;
12 int maze[mx][mx];
13 char m;
14 int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
15 int visited[mx][mx];
16 int cnt;//记录圈的个数
17 int mxlen;//记录最长圈的长度
18 int len;//记录当前圈的长度
19 int flag;//标记是否构成圈
20 bool judge(int x,int y)
21 {
22 if(x>=0&&x<3*h&&y>=0&&y<3*w) return true;//判断点是否出界
23 else return false;
24 }
25 void dfs(int x,int y)
26 {
27 int k,dx,dy;
28 for(k=0;k<4;k++)
29 {
30 dx=x+dir[k][0];
31 dy=y+dir[k][1];
32 if(judge(dx,dy))
33 {
34 if(!visited[dx][dy]&&!maze[dx][dy])
35 {
36 visited[dx][dy]=1;
37 len++;
38 dfs(dx,dy);
39 }
40 }
41 else //边界上的点肯定不构成圈。。。
42 {flag=0;}
43 // cout<<len<<endl;
44 }
45 }
46 int main()
47 {
48 int i,j,k;
49 int count1=0;
50 while(cin>>w>>h,w||h)
51 {
52 count1++;
53 memset(maze,0,sizeof(maze));
54 for(i=0;i<h;i++)
55 {
56 getchar();
57 for(j=0;j<w;j++)
58 {
59 scanf("%c",&m);
60 if(m=='/')
61 {
62 maze[3*i+2][3*j]=1;maze[3*i+1][3*j+1]=1;maze[3*i][3*j+2]=1;
63 }
64 else
65 {
66 maze[3*i][3*j]=1;maze[3*i+1][3*j+1]=1;maze[3*i+2][3*j+2]=1;
67 }
68 }
69 }
70 for(i=0;i<3*h;i++)
71 for(j=0;j<3*w;j++)
72 {visited[i][j]=maze[i][j];}
73 mxlen=0;
74 cnt=0;
75 for(i=0;i<3*h;i++)
76 {
77 for(j=0;j<3*w;j++)
78 {
79 if(maze[i][j]==0&&!visited[i][j])
80 {
81 len=1;
82 flag=1;
83 visited[i][j]=1;
84 dfs(i,j);
85 if(flag)
86 {
87 cnt++;
88 if(len>mxlen) mxlen=len;
89 }
90 }
91 }
92 }
93 cout<<"Maze #"<<count1<<":"<<endl;
94 if(cnt==0) cout<<"There are no cycles."<<endl<<endl;
95 else
96 cout<<cnt<<" Cycles; "<<"the longest has length "<<mxlen/3<<'.'<<endl<<endl;
97 }
98 return 0;
99 }
View Code

 

转载于:https://www.cnblogs.com/acm-jing/p/4245504.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅公开!集14位名师教案的《最全高中数学解题思想方法汇编》

全世界只有3.14 % 的人关注了爆炸吧知识解数学题&#xff0c;除了掌握有关的数学知识之外&#xff0c;最好掌握一定的解题技巧甚至知道点解题思想。要知道高考试题的解答过程中蕴含着重要的数学思想方法&#xff0c;如果能有意识地在解题过程中加以运用&#xff0c;势必会取得很…

极域课堂管理系统软件如何取消控制_智慧物流自动化智能仓储管理架构分析

现阶段&#xff0c;智慧物流&#xff08;ztmapinfo.com.&#xff09;成为了时事热点&#xff0c;获得物流界广泛关注。许多 物流自动化系统、物流自动化设备都打出了智慧物流的幌子&#xff0c;在刚结束了的CeMAT亚洲物流展上&#xff0c;宣传展现智慧物流技术与商品的公司增加…

控制 Redis stream 的消息数量

控制 Redis stream 的消息数量IntroRedis Stream 是 Redis 5.0 引入的一个新的类型&#xff0c;之前我们介绍过使用 Redis Stream 来实现消息队列&#xff0c;可以参考之前的文章 使用 Redis Stream 实现消息队列&#xff0c;而 Stream 的消息会持久化地内存中&#xff0c;如果…

java oom-killer_与Linux OOM-killer的第一次亲密接触

From1、最近一段时间(更换了预发机器后)我负责的一个应用的预发环境(线上稳定得像个婴儿~)特别不稳定&#xff0c;最先是应用频频的过几天就发现提供的接口不工作了&#xff0c;但容器Jetty还在跑得欢&#xff0c;于是jstack/jmap看&#xff0c;发现没有一个线程在跑我的war包中…

CentOS+lighttpd+php+mysql (fastcgi)环境的搭建(转)

呵呵&#xff01;觉得有必要把今晚的装lighttpd的经验和过程给记录下来&#xff01; 第一次写这样的文章&#xff0c;有什么不足的地方请高手们指出并给与修正&#xff01;下面开始&#xff01; 第一步&#xff1a;系统的安装&#xff01; 菜鸟的朋友们&#xff0c;可以先去lin…

vpx8运行待解决问题

一开始运行的时候是因为找不到HAVE_CONFIG_H他的定义&#xff0c;所以编译无法通过&#xff0c;找了好久还是没有找到&#xff0c;所以就先把它给注释掉了&#xff0c;结果运行的时候还是无法通过&#xff0c;运行的结果如下&#xff1a; 希望赶紧找到解决的办法 1>------ B…

led灯具供货合同

美高森美与索尼合作推出首款具3D功能的定时控制器与局部调光LED背光组合解决方案在刚刚结束的第十一届国际集成电路研讨会暨展览会&#xff08;IIC-China 2011&#xff09;上&#xff0c;美高森美公司(Microsemi)展示了与索尼合作推出的目前市场上首款具有3D功能的定时控制器与…

startindex 不能大于字符串长度_玩转云端丨redis的5种对象与8种数据结构之字符串对象(下)...

引言本文是对《redis设计与实现(第二版)》中数据结构与对象相关内容的整理与说明。本篇文章只对对象结构&#xff0c;1种对象——字符串对象。以及字符串对象所对应的两种编码——raw和embstr&#xff0c;进行了详细介绍。表达一些本人的想法与看法&#xff0c;也希望更多朋友一…

网友半夜差点被沐浴露吓死,众人:原来不止我胆小....

全世界只有3.14 % 的人关注了爆炸吧知识微博上有网友爆料说&#xff0c;他半夜上厕所差点被沐浴露吓死&#xff01;这么看可能不明显但是关灯的时候.....啊啊啊啊啊&#xff5e;结果引来众多网友的共鸣&#xff0c;原来大家都有类似遭遇....比如&#xff0c;你有被饮水机吓到过…

.NET 6 RC1 正式发布

昨天晚上微软发布了.NET 6的两个RC版本中的第一个版本&#xff0c;该版本将于11月正式发布&#xff0c;作为在开源MIT协议下整合所有不同的.NET开发模组件的开源跨平台实现。这是一个从2014年开始&#xff0c;持续多年的&#xff0c;以改变应用开发游戏规则的努力&#xff0c;由…

Winform开发中另一种样式的OutLookBar工具条

很早的时候&#xff0c;曾经写了一篇随笔《WinForm界面开发之“OutLookBar”工具条》介绍了OutLookBar样式的工具条&#xff0c;得到很多同行的热烈反馈&#xff0c;我个人也比较喜欢这样的工具条布局&#xff0c;因此我很多共享软件中&#xff0c;都经常看到这种OutLookBar的工…

常用小知识

在linux 上生成一个字符串的MD5 &#xff0c;可以直接用linux 上的命令&#xff1a;#md5sumecho -n ’123456′ | md5sum 这样及可。vi 使用&#xff1a;^ 到行首$ 到行尾yy 复制一行p 粘贴u 回退-------------------------------------------------------------------she…

重构的小故事 Change Value to Reference or Vice Verse

值和引用&#xff0c;有时候程序员因为熟悉而忽略了它们之间的区别&#xff0c;因此使用的时候也就不做选择信手拈来。得到预期结果就行&#xff0c;得不到预期结果就换下试试&#xff0c;毕竟两者有其一。那到底是值还是引用呢&#xff1f;有这样一个生活中的故事。<?xml:…

r语言主成分分析_PCA主成分分析

PCA主成分分析最近遇到了主成分分析法这个东西&#xff0c;一开始我觉得简直天才啊&#xff0c;这个想法虽然从经济意义上来解释有点奇怪&#xff0c;毕竟是数学方法计算出来的解释因子&#xff0c;但鉴于没人知道现实世界究竟被多少因素影响&#xff0c;这种方法可以将最主要的…

宫崎骏动画里的新垣结衣见过没?简直美呆!

全世界只有3.14 % 的人关注了爆炸吧知识本文经机器之心&#xff08;ID&#xff1a;almosthuman2014&#xff09;授权转载参与&#xff1a;肖清、思尽管最近 2019 年的图灵奖颁给了计算机图形学、颁给了皮克斯 3D 动画&#xff0c;但很多人可能认为二维动漫更有意思一些。像宫崎…

更了吗?Windows 11 22000.184 推送

面向 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22000.184。Windows 11 Insider Preview Build 22000.184 主要变化如下&#xff1a;1.微软现已修复在Windows 11 OOBE&#xff08;开箱体验&#xff09;阶段了解 Windows Hello 更多详…

java 快速io_如何快速理解Java的IO流

初学者觉得IO流复杂是很正常的&#xff0c;归根结底是没有理解JavaIO框架的设计思想&#xff1a;可以沿着这条路想一想&#xff1a;1&#xff0c;学IO流之前&#xff0c;我们写的程序&#xff0c;都是在内存里自己跟自己玩。比如&#xff0c;你声明个变量&#xff0c;创建个数组…

Effective C++ 学习笔记(11)

确定基类有虚析构函数 class A{public: A() { cout<<"A constructor"<<endl; }~A() { cout<<"A destructor"<<endl; }};class B: public A{public: B() { cout<<"B constru…

微软职位内部推荐-Software Development Engineer 2

微软近期Open的职位:SDE IIOrganization Summary:Engineering, Customer interactions & Online (ECO) is looking for a great "Software Development Engineer" to join our team. Customer support is a strategic differentiator for Microsoft and we are i…

C#判断某软件是否安装

代码 privatevoidbutton1_Click(objectsender, EventArgs e) { if(checkAdobeReader() true) { MessageBox.Show("有安裝 Adobe Reader "); } else{ MessageBox.Show("沒有安裝 Adobe Reader "); } …