当前位置: 首页 > 编程日记 > 正文

水管工游戏 (深搜)

水管工游戏

本题依然是采用搜索,深搜,广搜都可以,本代码采用深搜,此题在搜索时需要增加一些判断条件以及下一步要搜索的位置即可。

代码如下:

#include<stdio.h>
int a[51][51];
int book[51][51],n,m,flag=0,top=0;
void dfs(int x,int y,int front); 
struct note
{int x;int y;
}s[100];
int main(void)
{int i,j,num=0;scanf("%d%d",&n,&m);for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%d",&a[i][j]);}}dfs(1,1,1);if(flag==0){printf("impossible\n");}else{printf("\n");}return 0;
}
void dfs(int x,int y,int front)//front 的值为 1 ,2 ,3 ,4 分别表示进水口的位置在 左,上,右,下
{int i;    /* 测试当前栈内坐标 */
//    for(i=1;i<=top;i++)
//    {
//        printf("(%d,%d)",s[i].x,s[i].y);
//    }
//    printf("\n"); if(x==n&&y==m+1) //此处的判定条件为 m+1 
    {flag=1;for(i=1;i<=top;i++){printf("(%d,%d)",s[i].x,s[i].y);}return ;}if(x<1||x>n||y<1||y>m){return ;}if(book[x][y]==1){return ;}book[x][y]=1;//将当前尝试坐标入栈 top++;s[top].x=x;s[top].y=y;if(a[x][y]>=5&&a[x][y]<=6)//当前水管是直管的情况 
    {if(front==1){dfs(x,y+1,1);}if(front==2){dfs(x+1,y,2);}if(front==3){dfs(x,y-1,3);}if(front==4){dfs(x-1,y,4);}}if(a[x][y]>=1&&a[x][y]<=4)//当前水管是弯管的情况 
    {if(front==1){dfs(x+1,y,2);dfs(x-1,y,4);}if(front==2){dfs(x,y+1,1);dfs(x,y-1,3);}if(front==3){dfs(x-1,y,4);dfs(x+1,y,2);}if(front==4){dfs(x,y+1,1);dfs(x,y-1,3);}}
//    book[x][y]=0; // 本语句可将标记数组复原,本题中可有可无 top--; //将当前尝试坐标出栈 return ;    
}

转载于:https://www.cnblogs.com/lbd_smile/p/4568842.html

相关文章:

PE文件和COFF文件格式分析——导出表的应用——一种插件模型

可能在很多人想想中&#xff0c;只有DLL才有导出表&#xff0c;而Exe不应该有导出表。而在《PE文件和COFF文件格式分析——导出表》中&#xff0c;我却避开了这个话题。我就是想在本文中讨论下载Exe中存在导出表的场景。&#xff08;转载请指明出于breaksoftware的csdn博客&…

IBatis.Net学习笔记九--动态选择Dao的设计分析

在IBatis.Net中可以通过配置文件动态选择数据库、动态选择Dao对象。Dao对象也就是操作数据库的类&#xff0c;通过配置文件我们可以选择DataMapper的方式、Ado的方式、NHibernet的方式以前其他第三方的方式来操作数据库。有利于系统的灵活性和可扩展性。通过分析动态选择Dao的设…

Pytorch和Tensorflow,谁会笑到最后?

作者 | 土豆变成泥来源 | 知秋路&#xff08;ID:gh_4a538bd95663&#xff09;【导读】作为谷歌tensorflow某项目的Contributor&#xff0c;已经迅速弃坑转向Pytorch。目前Tensorflow还没有被Pytorch比下去&#xff0c;但之后极大概率被比下去。01 在学术界Pytorch已经超越Tenso…

HTTP请求的过程

HTTP通信机制是在一次完整的HTTP通信过程中&#xff0c;Web浏览器与Web服务器之间将完成下列7个步骤&#xff1a; 1. 建立TCP连接在HTTP工作开始之前&#xff0c;Web浏览器首先要通过网络与Web服务器建立连接&#xff0c;该连接是通过TCP来完成的&#xff0c;该协议与IP协议共同…

JSTL+EL表达式方法获取Oracle的Clob字段内容

我们在页面获得数据的时候一般的类型还是很好获得的,但是一遇到Clob类型就比较麻烦,最常用的方法是用一个流将其读取出来.使用MVC框架的时候这些都是无所谓的事情,因为反正是写在java类中怎么写都行,可是不使用MVC框架,使用jsp页面JSTL的sql标签去读取数据库的数据这种方式就麻…

通向人工智能产业落地化的道路在哪?

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;世事浮云&#xff0c;白云苍狗&#xff0c;转眼间关于人工智能的研究已历经两个世纪。在研究者和践行者的不懈努力之下&#xff0c;如今人工智能应用已遍地可见&#xff0c;无论是繁华都市还是偏远小镇&…

PE文件和COFF文件格式分析——导出表的应用——通过导出表隐性加载DLL

通过导出表隐性加载DLL&#xff1f;导出表&#xff1f;加载DLL&#xff1f;还隐性&#xff1f;是的。如果觉得不可思议&#xff0c;可以先看《PE文件和COFF文件格式分析——导出表》中关于“导出地址表”的详细介绍。&#xff08;转载请指明出于breaksoftware的csdn博客&#x…

系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常...

现象&#xff1a;spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 beans 的声明r的异常信息。 造成该异常原因有两种&#xff1a;第一,配置文件头部配置的xsd版…

DllMain中不当操作导致死锁问题的分析--死锁介绍

最近在网上看到一些关于在DllMain中不当操作导致死锁的问题&#xff0c;也没找到比较确切的解答&#xff0c;这极大吸引了我研究这个问题的兴趣。我花了一点时间研究了下&#xff0c;正好也趁机研究了下进程对DllMain的调用规律。因为整个研究篇幅比较长&#xff0c;我觉得还是…

XGBoost缺失值引发的问题及其深度分析 | CSDN博文精选

作者 | 兆军&#xff08;美团配送事业部算法平台团队技术专家&#xff09;来源 | 美团技术团队&#xff08;*点击阅读原文&#xff0c;查看美团技术团队更多文章&#xff09;背景XGBoost模型作为机器学习中的一大“杀器”&#xff0c;被广泛应用于数据科学竞赛和工业领域&#…

什么是CPI指数和GDP

即消费者物价指数(Consumer Price Index)&#xff0c;英文缩写为CPI&#xff0c;是反映与居民生活有关的产品及劳务价格统计出来的物价变动指标&#xff0c;通常作为观察通货膨胀水平的重要指标。如果消费者物价指数升幅过大&#xff0c;表明通胀已经成为经济不稳定因素&#x…

The Ultimate Guide To iPhone Resolutions

2019独角兽企业重金招聘Python工程师标准>>> ios 屏幕尺寸 像素 等说明 转载于:https://my.oschina.net/starmier/blog/467271

DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析

不知道大家是否思考过一个过程&#xff1a;系统试图运行我们写的程序&#xff0c;它是怎么知道程序起始位置的&#xff1f;很多同学想到&#xff0c;我们在编写程序时有个函数&#xff0c;类似Main这样的名字。是的&#xff01;这就是系统给我们提供的控制程序最开始的地方&…

力挺Python!同是程序员,为啥同事年前就实现了财务自由?

人红是非多&#xff0c;最近Python就遇到了这样的问题。与技术社区上一片「形势大好」对比鲜明的是&#xff0c;国内技术圈却一直存在对Python&#xff0c;「力挺」和「吃瓜」两派阵营&#xff0c;针锋相对&#xff0c;那么&#xff0c;Python到底有没有用&#xff0c;真相究竟…

C# 判断远程文件是否存在

#region 判断远程文件是否存在/// <summary>/// 判断远程文件是否存在/// </summary>/// <param name"fileUrl"></param>/// <returns></returns>public static bool RemoteFileExists(string fileUrl){HttpWebRequest re null…

DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子

有了前面两节的基础&#xff0c;我们现在切入正题&#xff1a;研究下DllMain为什么会因为不当操作导致死锁的问题。首先我们看一段比较经典的“DllMain中死锁”代码。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; //主线程中 HMODULE h LoadLibraryA(strD…

性能超FPN!北大、阿里等提多层特征金字塔网络

作者 | Qijie Zhao等编译 | 李杰出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;特征金字塔网络具有处理不同物体尺度变化的能力&#xff0c;因此被广泛应用到one-stage目标检测网络&#xff08;如DSSD&#xff0c;RetinaNet&#xff0c;RefineDet&#xff09;和two-…

什么是WIFI

WIFI全称Wireless Fidelity&#xff0c;又称802.11b标准&#xff0c;它的最大优点就是传输速度较高&#xff0c;可以达到11Mbps&#xff0c;另外它的有效距离也很长&#xff0c;同时也与已有的各种802.11DSSS设备兼容。 WIFI是由AP(Access Point)和无线网卡组成的无线网络。…

Android入门——电话拨号器和4种点击事件

关于HelloWorld为,电话拨号程序还AndroidA入门demo,从这个样例我们要理清楚做安卓项目的思路。大体分为三步&#xff1a; 1.理解需求&#xff0c;理清思路 2.设计UI 3.代码实现 电话拨号器 1. 理解需求&#xff1a; *一个文本框——用来接收电话号码 *一个button——用来触发事…

DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2

本文介绍使用Windbg去验证《DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子》中的结论&#xff0c;调试对象是文中刚开始那个例子。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 1 g 让程序运行起来 2 ctrlbreak 中断程序 3 ~ 查看…

从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践

可以看到&#xff0c;通过机器学习技术&#xff0c;软件或服务的功能和体验得到了质的提升。比如&#xff0c;我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力&#xff0c;以此改善服务的弹性和稳定性&#xff0c;这是多么美妙。而对移动平台来说&#…

我在不炎熱也不抑鬱的秋天,依然不抽煙

写过几次电影的观后感,挺过瘾.最近看到my little airport的那张新唱片,再也没有办法保持沉默了 为什么人家的唱片名都起的和小说一样,难得是为了证明听歌的人们都不喜欢动笔吗? 于是,我建了个类别,叫 我也会听歌.很明显,这里面会塞一些和歌相关的东西 这是第一篇

ubuntu安装redis的方法以及PHP安装redis扩展、CI框架sess使用redis的方法

为什么80%的码农都做不了架构师&#xff1f;>>> 再一次被网上那些教程误导后决定自己写一个。真心被那些奇怪的教程误导了好几次&#xff0c;之前研究其它东西的时候也是。蛋疼啊。 安装redis 直接用apt-get命令即可 sudo apt-get install redis-server 安装的时候…

浅谈数据库设计技巧

说到数据库&#xff0c;我认为不能不先谈数据结构。1996年&#xff0c;在我初入大学学习计算机编程时&#xff0c;当时的老师就告诉我们说&#xff1a;计算机程序&#xff1d;数据结构&#xff0b;算法。尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主&#xff0c;…

避免神经网络过拟合的5种技术(附链接) | CSDN博文精选

作者 | Abhinav Sagar翻译 | 陈超校对 | 王琦来源 | 数据派THU(ID:DatapiTHU)(*点击阅读原文&#xff0c;查看作者更多精彩文章&#xff09;本文介绍了5种在训练神经网络中避免过拟合的技术。 最近一年我一直致力于深度学习领域。这段时间里&#xff0c;我使用过很多神经网络&a…

DllMain中不当操作导致死锁问题的分析--加载卸载DLL与DllMain死锁的关系

前几篇文章一直没有在源码级证明&#xff1a;DllMain在收到DLL_PROCESS_ATTACH和DLL_PROCESS_DETACH时会进入临界区。这个论证非常重要&#xff0c;因为它是使其他线程不能进入临界区从而导致死锁的关键。我构造了在DLL被映射到进程地址空间的场景&#xff0c;请看死锁时加载DL…

LinearLayout增加divider分割线

2019独角兽企业重金招聘Python工程师标准>>> 在android3.0及后面的版本在LinearLayout里增加了个分割线 android:divider"drawable/shape"<!--分割线图片--> android:showDividers"middle|beginning|end" <!--分割线位置--> 分割线…

JAVA游戏编程之二----j2me MIDlet 手机游戏入门开发--贪吃蛇

作者&#xff1a;雷神 QQ:38929568 QQ群&#xff1a;28048051JAVA游戏编程&#xff08;满&#xff09; 28047782&#xff08;将满&#xff09; 与前一款扫雷比较&#xff0c;这个游戏多了一个 类&#xff0c;用来显示动画&#xff0c;也是蛇要吃的物品类&#xff0c; 也有了代码…

DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁

之前的几篇文章已经讲解了在DllMain中创建并等待线程导致的死锁的原因。是否还记得&#xff0c;我们分析了半天汇编才知道在线程中的死锁位置。如果对于缺乏调试经验的同学来说&#xff0c;可能发现这个位置有点麻烦。那么本文就介绍几个例子&#xff0c;它们会在线程明显的位置…

如何从菜鸡变成收割机,大厂面试的算法,你懂了吗?

是什么&#xff1f;让大厂面试显得逼格很高&#xff0c;是算法和数据结构吗&#xff1f;是的&#xff01;&#xff01;&#xff01;Google工程师曾总结过&#xff0c;大厂之所以爱考察算法和数据结构是因为&#xff1a;算法能力能够准确辨别一个程序员的技术功底是否扎实&#…